端末のシェルコマンドと 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;
 }

なぜこれが起こり、解決策がありますか?

ベストアンサー1

おすすめ記事