新聞中心
linux 系統(tǒng)有許多方法來執(zhí)行系統(tǒng)命令。如使用指令system(),exec()等等,其中以 popen() 為代表的就是典型的聯(lián)系系統(tǒng)的函數(shù)。

成都創(chuàng)新互聯(lián)專注于企業(yè)成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、洪雅網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場(chǎng)景定制、成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為洪雅等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
popen() 函數(shù)的功能是產(chǎn)生一個(gè)進(jìn)程,并且用一個(gè)管道和其他進(jìn)程進(jìn)行通信。它使用戶可以發(fā)出系統(tǒng)指令,并連接這些命令的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤,從而得到輸出結(jié)果的處理。popen() 函數(shù)的聲明如下:
FILE *popen(const char *command, const char *type);
其中 *command是要執(zhí)行的命令,*type 的值可以是 “r” 或 “w”,其中“r”表示在目前指針位置開始讀取,而“w”表示在目前位置開始寫入。
popen() 函數(shù)以執(zhí)行命令獲取結(jié)果的方式格式化一個(gè)管道,管道不可逆,打開文件時(shí),注意參數(shù)的有效性和可用性,也請(qǐng)注意流的模式,如“r”和“w”。
下面給出一個(gè)使用 popen() 函數(shù)執(zhí)行系統(tǒng)命令的示例:
#include
#include
int main ()
{
FILE *fp;
char output[1024];
fp = popen(“/bin/ls”,”r”); // ls列出當(dāng)前目錄下的文件
if(fp == NULL)
{
perror(“popen error”);
exit(1);
}
while(fgets(output, sizeof(output), fp) != NULL) // 持續(xù)讀取管道中的數(shù)據(jù)
{
printf(“%s”,output); // 將讀取到的數(shù)據(jù)打印出來
}
pclose(fp); // 關(guān)閉管道
return 0;
}
以上就是使用 Linux 使用 popen() 函數(shù)執(zhí)行系統(tǒng)命令的方法,它是一個(gè)易用的函數(shù),因此受到了廣泛的使用。雖然它的實(shí)現(xiàn)過程比較復(fù)雜,但如果可以認(rèn)真閱讀其函數(shù)說明,就能夠掌握使用它的技巧,運(yùn)用它開發(fā)出一些有用的功能。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享標(biāo)題:函數(shù)Linux下使用popen函數(shù)執(zhí)行系統(tǒng)命令(linuxpopen)
標(biāo)題網(wǎng)址:http://m.fisionsoft.com.cn/article/cdessee.html


咨詢
建站咨詢
