linux C 匿名管道

来源:互联网 发布:vue.js验证手机号码 编辑:程序博客网 时间:2024/06/05 03:34

匿名管道:

1、在父子进程之间进行通信

2、它是一个半双工的通信模式,具有固定的读端和写端

3、管道也可以看成是一种特殊的文件,对于它的读写也可以使用普通的read、write等函数。但是它不是普通的文件,并不属于其他任何文件系统,并且只存在于内存中。

函数:

int  pipe(int fd[2]);

传入参数fd[2]数组,管道的两个文件描述符,之后就可以直接操作这两个文件描述符。其中fd[0]是“读”描述符,fd[1]是“写”描述符。

代码:

#include <stdio.h>

#include <sys/types.h>

#include <unistd.h>

#include <stdlib.h>

#include <string.h>

int main()

{

int fd[2] ;

pid_t pid;

char writebuf[100] = {0};

char readbuf[100] = {0};

int ret = pipe(fd);

if(ret < 0)

return -1;

pid = fork();

if(pid < 0)

return -1;

else if(pid == 0)

{

printf("child \N");

close(fd[1]);

ret = read(fd[0],readbuf,sizeof(char)*100);

if(ret > 0)

printf("read message:%s\n",readbuf);

close(fd[0]);

}

else

{

close(fd[0]);

strncpy(writebuf,"hello world",strlen("hello world");

write(fd[1],writebuf,strlen(writebuf));

close(fd[1]);

}

return 0;

}


使用gdb进行调试:

                                gdb ./test

                                set follow-fork-mode parent

                                set  detach-on-fork off

                                b main

                                n

                                .

                               .

                               .

                              info inferior

                              inferior num







阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 深圳国旅 锦江国旅 北京国旅 中山国旅 国旅国旅 国旅电话 江苏国旅 重庆国旅 国旅香港游 广西国旅 新疆国旅 陕西国旅 河南国旅 贵州国旅 天津国旅 国旅运通 江西国旅 天马国旅 远景国旅 中西国旅 嘉信国旅 国旅集团 海外国旅 环球国旅 省国旅 同程国旅 中国国旅股票 中国国旅集团有限公司 中国国旅集团 中国国旅股吧 国旅联合股吧 国旅联合股票 国旅旅行社报价价格表 600358国旅联合 中国国旅怎么样 600358国旅联合股吧 中国国旅云南旅游 中国国旅旅游网 黑龙江国旅旅行社 天国旅立下载 国旅台湾旅游报价