大家帮我看看这是什么意思

slimzc 2009-02-28 07:22:45
看traceroute程序里有这一段判断....是什么意思?
if(argc<2)
printf("usage:tracert host-name[max_hops]\n");
if(argc==3)
maxhops=atoi(argv[2]);
else
maxhops=MAX_HOPS;

main程序 一部分这样:

int main(int argc, char* argv[])
{
WSADATA wsd;
SOCKET sockRaw;
HOSTENT *hp=NULL;
SOCKADDR_IN destAddr; //源地址
SOCKADDR_IN srcAddr;
int ret;
int datasize;
int srclen=sizeof(srcAddr);
int timeout;
int done=0;
int maxhops;
int ttl=1;
char *icmp_data;
char *recvbuf;
BOOL bOPt;
u_short seq_no=0;

if (WSAStartUp(MAKEWORD(2,2),&wsd)!=0)//Failed to load Winsock!
{
printf("WSAStartup()error:%d\n",GetLastError());
return -1;

}
if(argc<2)
printf("usage:tracert host-name[max_hops]\n");
if(argc==3)
maxhops=atoi(argv[2]);
else
maxhops=MAX_HOPS;
...全文
153 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liushiyuyi 2009-03-06
  • 打赏
  • 举报
回复
up
lq651659889 2009-03-01
  • 打赏
  • 举报
回复
学习
fairchild811 2009-02-28
  • 打赏
  • 举报
回复
恩,就是根据主函数的参数个数来输出
  • 打赏
  • 举报
回复
http://zhidao.baidu.com/question/2014722.html
估计你没见过带参数的main(),看看这个帖吧。
  • 打赏
  • 举报
回复
if(argc <2)
printf("usage:tracert host-name[max_hops]\n");
if(argc==3)
maxhops=atoi(argv[2]);
else
maxhops=MAX_HOPS;
是这些吗?

如果主函数接收的参数<2,就printf("usage:tracert host-name[max_hops]\n");
如果参数是3个(除了运行函数指令,其实是2个参数)就maxhops=atoi(argv[2]);
不难理解吧。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧