터미널의 셸 명령 및 system() 호출

터미널의 셸 명령 및 system() 호출

나는 NMAP을 사용하여 호스트에서 포트 스캔을 수행하고 있습니다. 터미널에서 다음 명령을 실행하면 대부분 1분 이내에 결과가 표시됩니다.

$ nmap -p 1-65535 10.180.5.237 | awk --posix '{ if ($1 ~ /^[0-9]/) print $0+0}'
22
80
2404

하지만 다음을 사용하여 동일한 명령을 실행하면체계()C 프로그램에서 호출하면 시간이 무한정 걸린다는데, 7분 넘게 줬는데 출력이 안 나와서 프로세스를 멈췄기 때문에 미확정이라고 합니다.

if ((system("nmap -p 1-65535 10.180.5.237 | awk --posix '{ if ($1 ~ /^[0-9]/) print $0+0}' > file_openPorts")) == -1) {
      fprintf(stderr, "ERROR : NMAP port scan error...\n");
      return 1;
 }

왜 이런 일이 발생하며 해결책이 있습니까?

관련 정보