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

热点内容
怎么提前解压房贷 浏览:698
反诈宣传app哪里可以拿到用户资料 浏览:853
华为交换机命令配置 浏览:8
电机pid算法实例c语言 浏览:972
安装ue5未找到金属编译器 浏览:961
l1压缩性骨折微创手术 浏览:615
看电脑配置命令 浏览:106
单片机调用db数值偏移量 浏览:444
奔驰smart车型压缩机功率 浏览:527
服务器预留地址获取 浏览:1003
云库文件夹怎么设置 浏览:295
文件夹目录制作自动跳转 浏览:452
在哪个音乐app能听exo的歌 浏览:849
pdf超级加密 浏览:47
苹果手机app安装包怎么解压并安装 浏览:907
中原30系统源码 浏览:187
程序员如何遵纪守法 浏览:501
java的webxml配置 浏览:963
如何封包远程注入服务器 浏览:865
监测机构资金动向源码 浏览:967