Comando shell na chamada terminal vs system ()

1

Estou usando o NMAP para varredura de porta em um host. Quando eu executo o seguinte comando no terminal, ele fornece os resultados dentro de um minuto na maioria das vezes.

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

Mas se eu executar o mesmo comando usando system () chamada em um programa em C leva tempo indefinido, estou dizendo indefinido porque dei mais de 7 minutos mas nenhuma saída interrompeu o processo.

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;
 }

por que é assim e há alguma solução?.

    
por reddi hari 27.03.2018 / 06:18

0 respostas