【進程通信】popen與pclose,創建一個管道連接到另一個進程中

管道是一種初級的進程間通信的辦法但簡單的辦法通常使用起來更加方便。因爲工作中用到一點,所以先少量寫一點,研究多了再慢慢補充。


先看看怎麼用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這個函數




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章