【发布时间】:2026-02-05 01:40:01
【问题描述】:
在运行下面的代码时,它在显示argv[0]、argv[1] 和argv[2] 行后卡住了。
此时进一步的代码流被阻止,任何人都可以帮助它停止执行还是进入无限循环。
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <stdlib.h>
#include "p8log.h"
#include <errno.h>
int main(int argc, char* argv[])
{
char* PORT;
char* IPADDR;
printf("Arg Count=%d\n",argc);
printf("Arguments are=%s,%s,%s\n",argv[0],argv[1],argv[2]);
printf("HELLO");
PORT=argv[1],
printf("WORLD");
IPADDR=argv[2];
printf("START");
printf("port num=%s",PORT);
printf("IP ADDR=%s",IPADDR);
printf("END");
/* some algorithm of calculation */
return 0;
}
执行
./file-exe 11111 127.0.0.1
输出
Arg Count=3
Arguments are=./file-exe,11111,127.0.0.1
【问题讨论】:
-
标题是C++,标签是C,你用的是什么语言?
-
显然没有流量控制;显示的代码不太可能导致无限循环。到目前为止的输出是什么?是否到达了将
END写入输出的部分? -
将
\n添加到所有printf中。发布您输入的输入,然后发布您看到的输出。 -
对我来说效果很好:
$ ./a.exe 11111 127.0.0.1Arg Count=3Arguments are=C:\tmp\a.exe,11111,127.0.0.1HELLOWORLDSTARTport num=11111IP ADDR=127.0.0.1END -
P.S.在 OP 编辑之后,水晶球说它卡在了 not 发布的
/* some algorithm of calculation */代码中。