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

热点内容
服务器侦听端口是什么意思 浏览:320
手机通知音效文件夹 浏览:134
pdf产品目录 浏览:202
三菱fd编译通过不了 浏览:156
15g游戏下载完怎么解压 浏览:708
编译原理文法中的句型 浏览:755
出售广联达云翻样加密狗 浏览:276
把多页pdf合并软件 浏览:325
热点已保存加密可上网什么原因 浏览:557
张家口app怎么查看全部账号 浏览:183
cad先选择命令 浏览:749
我的世界命令方块手机版 浏览:254
迅投python下单 浏览:471
javamd5加密32位 浏览:469
php连接mysql测试代码 浏览:473
如何下载亚马逊app安卓 浏览:698
解压神器大组合 浏览:728
多次编译一个内核会快吗 浏览:162
单片机伺服500k 浏览:868
linux安装repo 浏览:799