寫程式有時候會call library來使用,有時偷懶直接想透過指令取得結果,可以用下面兩種方法取得平常在終端機裡看到的返迴值,拿到程式裡使用。這邊是在linux的環境下執行。
第一種透過system call,這種麻煩是要處理檔名不重複問題。
system("ping 192.168.1.105 >/root/1.txt");
到root下找1.txt文件打開,當然root可以換成任一路徑,然後一樣可以用fopen處理。
第二種透過popen,這種沒有處理檔名不重複的問題。
FILE *fp;
char *cmd = "ping -c 1 219.246.237.124";
char buf[128];
printf("enter\n");
if ((fp = popen( cmd , "r"))==NULL )
{
printf("failed to popen\n ");
return;
}
printf("gemfield\n");
/*讀出管道數據*/
fgets(buf,sizeof(buf), sizeof(buf), fp);
printf ( "%s\n", buf);//buffer裡的東西看你愛怎麼用就怎麼用~
printf("haha\n");
/*關閉管道*/
pclose (fp) ;
沒有留言:
張貼留言