パイプライン経由で ping コマンドの出力をすぐにキャプチャするにはどうすればよいですか?
これが私のコードです:
int main ()
{
FILE *cmd = popen ( "ping -c 3 google.com | grep icmp", "r" );//ping google
char *s = malloc ( sizeof ( char ) * 200 );
while ( 1 )
{
fgets ( s, sizeof ( char )*200, cmd );
printf ( "%s", s);//show outcome
if ( strstr ( s, "icmp_req=3" ) != 0 )
break;
}
pclose ( cmd );
return 0;
}
プログラムが終了すると、同時に出力が表示されます。しかし、プログラムの実行中にすぐに出力を読みたいと思います。