<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    linux下C和shell調用的popen函數

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接 說明:      本文介紹popen函數的使用方法和行為機理,并給出實際的例子來輔助說明了popen函數的使用方法。 popen函數使用FIFO管道執行外部程序,首先讓我們看看popen的函數原型吧: #include <stdio.h> FILE *popen(const char *command, const char *type); int pclose(FILE *stream);        popen 通過type是r 還是w 來確定command的輸入/輸出方向,r和w是相對command的管道而言的。r表示command從管道中讀入,w表示 command通過管道輸出到它的stdout,popen返回FIFO管道的文件流指針。pclose則用于使用結束后關閉這個指針。 下面一起來看一個例子: /******************************************************************************************* ** Name:popen.c **      This program is used to show the usage of popen() . *******************************************************************************************/ #include <sys/types.h>  #include <unistd.h>  #include <stdlib.h>  #include <stdio.h>  #include <string.h> int main( void )  {     FILE   *stream;     FILE   *wstream;    char   buf[1024];          memset( buf, '\0', sizeof(buf) );//初始化buf,以免后面寫如亂碼到文件中     stream = popen( "ls -l", "r" ); //將“ls -l”命令的輸出 通過管道讀取(“r”參數)到FILE* stream     wstream = fopen( "test_popen.txt", "w+"); //新建一個可寫的文件     fread( buf, sizeof(char), sizeof(buf), stream); //將剛剛FILE* stream的數據流讀取到buf中     fwrite( buf, 1, sizeof(buf), wstream );//將buf中的數據寫到FILE    *wstream對應的流中,也是寫到文件中          pclose( stream );      fclose( wstream );          return 0; }   [root@localhost src]# gcc popen.c  [root@localhost src]# ./a.out    [root@localhost src]# cat test_popen.txt  總計 128 -rwxr-xr-x 1 root root 5558 09-30 11:51 a.out -rwxr-xr-x 1 root root 542 09-30 00:00 child_fork.c -rwxr-xr-x 1 root root 480 09-30 00:13 execve.c -rwxr-xr-x 1 root root 1811 09-29 21:33 fork.c -rwxr-xr-x 1 root root 162 09-29 18:54 getpid.c -rwxr-xr-x 1 root root 1105 09-30 11:49 popen.c -rwxr-xr-x 1 root root 443 09-30 00:55 system.c -rwxr-xr-x 1 root root    0 09-30 11:51 test_popen.txt -rwxr-xr-x 1 root root 4094 09-30 11:39 test.txtRFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全