При запуске нижеследующего кода он запускается после отображения строк argv[0]
, argv[1]
и argv[2]
. Дальнейший поток кода блокируется в этот момент, может ли кто-нибудь помочь, почему он останавливает свое выполнение или входит в бесконечный цикл.Обработка аргументов командной строки в c
#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. Какой язык вы используете? – MikeCAT
По-видимому, нет контроля потока; маловероятно, что показанный код вызывает бесконечный цикл. Каков результат до сих пор? Является ли часть, где 'END' записывается на выход, когда-либо достигнутый? – Codor
Вы передаете более двух аргументов? Проверьте 'argc' перед доступом к' argv [] ' – Constantin