導航:首頁 > 操作系統 > linuxcfork

linuxcfork

發布時間:2023-08-14 06:10:10

『壹』 linux C: 1、啟動A進程,創建一有名管道,並向其寫入一些數據 2、啟動B進程,從A創建的有名管道中讀出數據

01 #include<stdio.h>
02 #include<unistd.h>
03
04 int main()
05 {
06 int n,fd[2]; // 這里的 fd 是文件描述符的數組,用於創建管道做准備的
07 pid_t pid;
08 char line[100];
09 if(pipe(fd)<0) // 創建管道
10 printf("pipe create error\n");
11
12 if((pid=fork())<0) //利用 fork()創建新進程
13 printf("fork error\n");
14
15 else if(pid>0){ //這里是父進程,先關閉管道的讀出端,然後在管道的寫端寫入「hello world"
16 close(fd[0]);
17 write(fd[1],"hello word\n",11);
18 }
19 else{
20 close(fd[1]); //這里是子進程,先關閉管道的寫入端,然後在管道的讀出端讀出數據
21 n= read(fd[0],line,100);
22 write(STDOUT_FILENO,line,n);
23 }
24 exit(0);
25 }

『貳』 fork函數是什麼

C語言裡面,fork函數是用來創建子進程的

『叄』 linux下C語言編程,管道,p,fork,疑問的是,為什麼連用那麼多close必須要close 代碼如下

文件描述符0,1,2分別表示標准輸入標准輸出,標准錯誤輸出, 所以在子進程里close(1)是關閉了標准輸出, 然後用p(fda[1]);此時未用的最小文件描述符就是1(被關閉);這里關閉fda[0]就是為了說明在子進程是管道的寫端(fda[0],不關閉是可以的為了保險起見關閉).然後子進程退出會調用系統程序ls,於是當前的文件目錄就被發送到管道中.父進程同理, 就是將標准輸出作為管道的讀端,它讀到的是子進程ls後的內容,對文件計數,

『肆』 請問在Linux C中fork()函數的代碼之前的代碼會重復運行嗎

在調用fork()函數之前的代碼不會重新執行,子進程是從fork()函數的下一行代碼繼續執行。

閱讀全文

與linuxcfork相關的資料

熱點內容
32位機器上編譯出64的動態庫 瀏覽:923
python辦公數據類型 瀏覽:912
傳統8051單片機介紹 瀏覽:627
app拉新公司如何運營 瀏覽:617
槍法pdf 瀏覽:61
ios如何設置安卓虛擬返回鍵 瀏覽:696
mysql命令執行sql 瀏覽:93
惠普內嵌伺服器怎麼打開 瀏覽:410
cmd命令查看網路 瀏覽:817
程序員秘密 瀏覽:928
如何宣傳app引流 瀏覽:68
圖說紅樓夢中央編譯 瀏覽:170
php查詢賦值 瀏覽:268
java程序員面試寶典第四版pdf 瀏覽:929
2021流行加密加長睫毛膏 瀏覽:641
怎麼用windows自帶編譯器 瀏覽:394
phpmanager64下載 瀏覽:139
有車以後app的活動在哪裡 瀏覽:147
乘積的n階如何編譯 瀏覽:108
手機音頻轉換app哪個好用 瀏覽:568