int main(int argc, char **argv)
if (argc <2 ) {
Usage(argv[0]);
}
运行时总是到这一步,失败。
不是应该这样?:
int main(int argc, char **argv){
if(argc <2){
Usage(argv[0]);
}
}
你报的错误贴出来啊
int main(int argc, char **argv){
WSADATA wsaData;
SOCKET sockRaw;
struct sockaddr_in dest,from;
struct hostent * hp;
int bread,datasize,times;
int fromlen = sizeof(from);
int timeout = 1000;
int statistic = 0; /* 用于统计结果 */
char *dest_ip;
char *icmp_data;
char *recvbuf;
unsigned int addr=0;
USHORT seq_no = 0;
if (WSAStartup(MAKEWORD(2,1),&wsaData) != 0){
fprintf(stderr,"WSAStartup failed: %d\n",GetLastError());
ExitProcess(STATUS_FAILED);
}
if (argc <2 ) {
Usage(argv[0]);
}
sockRaw = WSASocket(AF_INET,SOCK_RAW,IPPROTO_ICMP,NULL, 0,WSA_FLAG_OVERLAPPED);
if (argc <2 ) {
Usage(argv[0]);
}
当argc == 0时,argv[0]会报错的
因为你执行的时候没有传参数进去