導航:首頁 > 操作系統 > 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相關的資料

熱點內容
安卓手機為什麼換電話卡沒反應 瀏覽:793
諸子集成pdf 瀏覽:336
php注冊框代碼 瀏覽:714
手機加密好還是不加好好 瀏覽:814
別克凱越壓縮機泵頭多錢 瀏覽:239
組管理命令 瀏覽:979
海南高德司機端是什麼app 瀏覽:861
pid命令 瀏覽:888
一天一圖學會python可視化 瀏覽:309
魔獸編輯文本命令串 瀏覽:497
android中view繪制 瀏覽:798
安卓機內存刪除怎麼恢復 瀏覽:331
Qt環境的編譯軟體放到linux 瀏覽:214
聯創列印系統怎麼連接伺服器 瀏覽:937
杭州行政命令 瀏覽:160
如何查找伺服器日誌 瀏覽:801
加密的鑰匙扣怎麼寫 瀏覽:579
文件夾更新不了怎麼辦 瀏覽:475
壓縮機指示燈亮是什麼原因 瀏覽:956
什麼app訂酒店半價 瀏覽:767