PGIDEN –在图形的底端标记上用户名、日期和时间
对应的C函数为
1 | void cpgiden(void); |
在图形的底端标记上用户名、日期和时间
参数: 无
对应的C函数为
1 | void cpgenv(float xmin, float xmax, float ymin, float ymax, int just, int axis); |
设置PGPLOT “作图环境Environment”。PGENV为随后的PGPT,PGLINE 构建比例坐标。绘图将前进到一个新页或面板(如果有需要可以清空屏幕)。如果”提示状态”是打开的(参考PGASK),在清空屏幕前,需要用户的确认。通过参数AXIS可以绘制需要的方框,坐标轴,标签等。
参数:
对于其他的axis选项,使用函数PGBOX。PGENV 可以通过设置环境变量参数PGPLOT_ENVOPT 来使用一些PGBOX的属性。
例如:
对应的C函数为
1 | void cpgerrb(int dir, int n, const float *x, const float *y, const float *e, float t); |
1 | SUBROUTINE PGERRB (DIR, N, X, Y, E, T) |
绘制误差图,方向由DIR指定,这个函数只是绘制误差图,如果需要标注误差值的点,可以使用PGPT函数。
测试数据为:
1 | static float xs[] = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0 ,6.0,7.0,8.0,9.0,10.0}; |
参数说明
注: X, Y和E的维数必须大于或等于N. 如果 N 为1,那么 X, Y和E就应该是同等数量的变量或表达式。
C语言:1973年由Dennis M. Ritchie设计和实现。
K&R C:1978年由Kernighan和Ritchie合写的书《The C Programming Language》,形成了C语言的事实的标准,简称为K&R C。
ANSI C(C89或C90):1989年,美国国家标准局(ANSI)颁布了第一个官方的C语言标准(X3.159-1989),简称为ANSI C或C89;1990年,它被国际标准化组织(ISO)采纳国际标准(ISO/IEC9899:1990),简称为C90。这个标准是目前广泛使用并完全支持的。
C99:1999年,ISO/ANSI又推出了新的标准(ISO9899:1999),简称C99。这个标准目前支持的可能还不太全面。
C99是在C89(Ansi C)的基础上发展起来的,增加了基本数据类型,关键字 ,和一些系统函数等。目前完全支持的有这些:MinGW、Borland C++、dev-C++。
限制 | C89标准 | C99标准 |
---|---|---|
数据块的嵌套层数 | 15 | 127 |
条件语句的嵌套层数 | 8 | 63 |
内部标识符中的有效字符个数 | 31 | 63 |
外部标识符中的有效字符个数 | 6 | 31 |
结构或联合中的成员个数 | 127 | 1023 |
函数调用中的参数个数 | 31 | 127 |
不再支持隐含式的int规则etc…
tracepath
用于显示报文到达某一个地址的路由信息,能够发现其中的MTU信息。
在探测过程中,会使用UDP端口或随机端口。所以可以看到后面的?符号。与traceroute
类似。
这对于长距离的数据传输分析有很明显的帮助作用。
官方的定义为:
tracepath, tracepath6 - traces path to a network host discovering MTU along this path
使用方法为:
1 | $ tracepath [-n] [-b] [-l pktlen] [-m max_hops] [-p port] destination |
其中选项如下所示:
-n
:只显示IP地址信息(默认是显示域名的,这个选项将不显示域名了)-b
:同时显示主机名和IP地址(默认没有域名的只显示IP地址,这个选项即使没有主机名也会把IP地址作为主机名)-l
:设置初始化的数据包长度,默认tracepath
为65535,而tracepaht6
为128000-m
:设置最大的hops(或最大的TTL)为max_hops(默认为30)-p
:设置初始使用的目标端口1 | root@mops:~ $ tracepath6 3ffe:2400:0:109::2 |
以其中一行为例:
TTL | 探测信息 |
---|---|
1?: | [LOCALHOST] pmtu 1500 |
1: | dust.inr.ac.ru 0.411ms |
这一列显示探测的TTL,用分号来分割。 不过有些情况下信息不足以确认,就出现了猜测的 ? |
显示网络探测信息: 如果未发送到网络,则为路由器地址或者localhost地址; 这里还会显示MTU、延迟等等等。 |
最后一行会总结整个链路的状态信息,显示了检测到的路径MTU、到达目的地的hops以及从目的地返回的hops数。
可以与ping
配合使用,可以先用ping
获取到具体的IP地址,然后使用tracepath
进行进一步的分析。
1 | $ ping www.bing.com |
..note::
少小离家老大回,乡音无改鬓毛衰。
贺知章《回乡偶书二首·其一》
Linux traceroute
命令用于打印显示数据包到网络主机的路径。
traceroute
会跟踪从IP网络发送到指定主机的路由包,并利用IP协议的生存时间(TTL)字段,试图在通往主机路径上的每个网关得到一个ICMP TIME_EXCEEDED响应,由此可得具体的路由信息。
官方的定义为:
traceroute - print the route packets trace to network host
使用方法还挺复杂的,不过常用的不多:
1 | $ traceroute [-46dFITUnreAV] [-f first_ttl] [-g gate,...] |
显示到达目的地的数据包路由
1 | $ traceroute www.bing.com |
对应的C函数为
1 | void cpgconb(const float *a, int idim, int jdim, int i1, int i2, int j1, int j2, const float *c, int nc, const float *tr, float blank); |
绘制出一个数组的等高线图。这个函数与PGCONS基本相同,除了多了一个有参数blank定义的“魔数”,可能会导致等高线图有缺口。这个函数对大部分的数据测量都是比较有用的,but not all of the points of a grid.
参数:
1 | X = TR(1) + TR(2)*I + TR(3)*J |