C語言建立管道實現程序間通訊

2021-09-08 02:24:11 字數 1139 閱讀 8364

#include 

#include

#include

int runcmd( char* lpcmd )

; //

緩衝區 dword len;

handle hread, hwrite; //

管道讀寫控制代碼

startupinfo si;

process_information pi;

security_attributes sa;

//zeromemory( buf, 2047 );

sa.nlength = sizeof( sa );

sa.binherithandle = true; //

管道控制代碼是可被繼承的

sa.lpsecuritydescriptor = null;

//建立匿名管道,管道控制代碼是可被繼承的

if( !createpipe( &hread, &hwrite, &sa, 2048 ) )

zeromemory( &si, sizeof( si ) );

si.cb = sizeof( si );

si.dwflags = startf_usestdhandles | startf_useshowwindow;

si.wshowwindow = sw_hide;

si.hstderror = hwrite;

si.hstdoutput = hwrite;

//建立子程序,執行命令,子程序是可繼承的

if ( !createprocess( null, lpcmd, null, null, true, 0, null, null, &si, &pi ) )

//寫端控制代碼已被繼承,本地需要關閉,不然讀管道時將被阻塞

closehandle( hwrite );

//讀管道內容,並顯示

while ( readfile( hread, buf, 2047, &len, null ) )

closehandle( hread );

return0;}

int main( int argc, char** ar** )

女孩不哭(191035066)@2011-12-05 19:26:50

命名管道實現程序間通訊

include include include include include include include define fifo server tmp myfifo main int argc,char argv argc 引數個數?argv 引數 else printf write s to...

利用管道實現程序間通訊

管道 pipe 是程序用來通訊的共享記憶體區域。乙個程序往管道中寫入資訊,而其它的程序可以從管道中讀出資訊。如其名,管道是程序間資料交流的通道。郵路 mailslots 的功能與管道類似,也是程序間通訊 interprocess communications,ipc 的媒介,只不過其具體實現方式與管...

Linux 管道 實現程序間通訊

管道是一種最基本的 ipc 機制,由 pipe 函式建立 include int pipe int filedes 2 呼叫 pipe 函式時在核心中開闢一塊緩衝區 稱為管道 用於通訊,它有乙個讀端乙個寫端,然後通過 filedes 引數傳出給使用者程式兩個檔案描述符,filedes 0 指向管道的...