继续研究,这几天看代码看得头晕脑胀。
cnt = -1;
//设置为-1
device = NULL;
//设置为NULL
infile = NULL;
//设置为NULL
RFileName = NULL;
//设置为NULL
VFileName = NULL;
//设置为NULL
VFile = NULL;
//设置为NULL
WFileName = NULL;
//设置为NULL
dlt = -1;
//设置为NULL
~~~~~~~~~~~~~~~
if ((cp = strrchr(argv[0], '/')) != NULL)
program_name = cp + 1;
else
program_name = argv[0];
//指向进程名
//自定义检查点: 1 2 3
if (abort_on_misalignment(ebuf, sizeof(ebuf)) < 0)
error("%s", ebuf);
//自定义检查点: 1 2 3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
while (
(op = getopt(argc, argv, "aAb" B_FLAG "c:C:d" D_FLAG "eE:fF:G:hHi:" I_FLAG j_FLAG J_FLAG "KlLm:M:nNOpqr:Rs:StT:u" U_FLAG "V:vw:W:xXy:Yz:Z:")
) != -1)的作用是对参数进行分析提取。
~~~~~~~~~~
case 'a':
/* compatibility for old -a */
break;
//如果是a--->break;
//自定义检查点: 1 2 3
case 'A':
++Aflag;
break;
//设置Aflag增加1
//自定义检查点: 1 2 3
case 'b':
++bflag;
break;
//自定义检查点: 1 2 3
这也没啥好讲的,很简单!
其实下面都是些参数,假设我们启动tcpdump,而且不带任何参数,
那一切就很简单分析了。
~~~~~~~~~~~~~~~~~~~~~~~