导航:首页 > 操作系统 > 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相关的资料

热点内容
如何在中国农业银行app绑定银行卡 浏览:989
shopnum1多用户商城系统源码 浏览:742
红包广告平台源码 浏览:769
硬盘格式化时用的dos命令是 浏览:940
找人缓解压力 浏览:934
iphone的pdf 浏览:347
90压缩饼干怎么吃 浏览:665
php教材下载 浏览:911
什么解压密码最好 浏览:587
数据库与服务器如何连接 浏览:441
架构师需要阅读的源码 浏览:480
ch编译器 浏览:455
java必须自己写一个编译器吗 浏览:943
如何制作androidrom 浏览:475
单片机万能板怎么写入程序 浏览:26
迈锐宝xl压缩比 浏览:345
靠算法买彩票 浏览:502
程序员考核d 浏览:242
自助游中国pdf 浏览:752
安卓p40是什么手机 浏览:92