管道是一種初級的進程間通信的辦法,但簡單的辦法通常使用起來更加方便。因爲工作中用到一點,所以先少量寫一點,研究多了再慢慢補充。
先看看怎麼用popen。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define SIZE 1024
int main(void)
{
FILE *fp;
char buffer[SIZE];
fp = popen("ifconfig", "r");
fread(buffer, SIZE, 1, fp);
printf("%s\n", buffer);
pclose(fp);
return 0;
}
使用man popen查看popen的手冊。
FILE *popen(const char *command, const char *type);
第一個參數,就是提供一個shell指令,第二個參數,可讀還是可寫,可以參考fopen
這段代碼將,ifconfig本來打在標準輸出的內容輸入到了管道fp中,然後直接用fread將這段內容讀到buffer中保存起來
然後就可以對該段內存進行編輯了
以後再補充怎麼寫popen這個函數