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

熱點內容
如何關閉手機dhcp伺服器 瀏覽:981
php免費ide 瀏覽:200
程序員詞句 瀏覽:976
伺服器如何禁止某個ip段 瀏覽:329
便簽手機文件夾 瀏覽:768
gameloft的java游戲 瀏覽:110
神佑釋放怎麼轉伺服器 瀏覽:735
洋蔥app軟體怎麼登錄 瀏覽:788
兩相電空氣壓縮機 瀏覽:396
基於51單片機的智能語音密碼鎖設計 瀏覽:845
mac如何用ssh登錄伺服器 瀏覽:446
appstore怎麼設置 瀏覽:954
在哪個app買韓國女裝 瀏覽:111
php寫入文件換行 瀏覽:749
dsp實現fft演算法 瀏覽:485
棋牌源碼轉讓交易手續費 瀏覽:293
雲上伺服器貴州 瀏覽:647
qq三國怎麼使用雲伺服器 瀏覽:303
一鍵加密字體怎麼設置 瀏覽:145
majority演算法 瀏覽:822