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?.
Tags nmap linux system-calls