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

熱點內容
阿里雲伺服器的密碼在哪改 瀏覽:907
如何刪除集群伺服器 瀏覽:809
程序員方向知乎 瀏覽:153
華為手錶運動健康app怎麼弄 瀏覽:1000
ftp文件夾形式 瀏覽:666
房本抵押銀行沒有解壓 瀏覽:535
用紙做解壓魔術 瀏覽:484
伺服器中運行的腳本如何測試 瀏覽:373
手機主題包時鍾文件夾 瀏覽:423
怎麼在app上退訂短號業務 瀏覽:978
解壓迫及法老 瀏覽:58
pdf橫豎 瀏覽:137
5800計算機程序和編程 瀏覽:29
網上報修php源碼 瀏覽:897
魔獸宏命令老是語言提示 瀏覽:971
辦公文件夾大全 瀏覽:471
單片機閃爍燈虛擬線路圖 瀏覽:72
App顯示別的國家怎麼更改 瀏覽:154
幻塔官方伺服器叫什麼 瀏覽:196
android自定義進度框 瀏覽:506