system函式和popen函式

2021-10-09 17:40:39 字數 1674 閱讀 2007

linux的system函式的實現原始碼

system()會呼叫fork()產生子程序,由子程序來呼叫/bin/sh-c cmdstring來執行引數cmdstring字串所代表的命令,此命令執行完後隨即返回原呼叫的程序。

int

system

(const

char

* cmdstring)if(

(pid =

fork()

)<0)

else

if(pid ==0)

else}}

return status;

}

system函式的應用一

#include

#include

#include

#include

#include

#include

#include

intmain()

else

if(pid==0)

}else

}return0;

}

system函式的應用二

#include

#include

#include

//函式原型:int execl(const char *path, const char *arg, ...);

intmain

(void);

if(execv("/bin/ps",ar**) == -1) */

// if(execlp("ps","ps",null,null) == -1)if(

system

("ps")==

-1)printf

("after execl\n");

return0;

}

popen函式

比system函式在應用中的好處:可以獲取執行的輸出結果

#include

file *

popen

(const

char

*command,

const

char

*type)

;

若type是」r」,則檔案指標是連線到子程序執行command命令的標準輸出,如果type是」w」,則檔案指標連線到子程序執行command命令的標準輸入。

#include

#include

#include

// size_t fread(void *ptr, size_t size, size_t nmemb, file *stream);

intmain

(void);

file *fp;

fp =

popen

("ps"

,"r");

int nread =

fread

(ret,1,

1024

,fp)

;printf

("read ret %d byte, ret=%s\n"

,nread,ret)

;return0;

}

system函式和popen函式

include file popen const char command,const char type int pclose file stream popen總是和pclose一起出現被使用的。popen 建立乙個管道,通過fork或者invoke乙個子程序,然後執行command。返回值在標...

popen函式和system函式詳解

我們先用man指令查一下popen函式 函式說明 1 popen 會呼叫fork 產生子程序,然後從子程序中呼叫 bin sh c來執行引數command的指令。2 引數type可使用 r 代表讀取,w 代表寫入。依照此type值,popen 會建立管道連到子程序的標準輸出裝置或標準輸入裝置,然後返...

popen函式和system函式詳解

1 popen函式 我們先用man指令查一下popen函式 函式說明 1 popen 會呼叫fork 產生子程序,然後從子程序中呼叫 bin sh c來執行引數command的指令。2 引數type可使用 r 代表讀取,w 代表寫入。依照此type值,popen 會建立管道連到子程序的標準輸出裝置或...