`
luozhonghua2014
  • 浏览: 62667 次
文章分类
社区版块
存档分类
最新评论

linux c 进程 pipe 通信代码分析

 
阅读更多
[root@luozhonghua 04]# cat ex04-3-pipe02.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>


int main(void){
int result=-1;
int fd[2],nbytes;
pid_t pid;
char string[]="hello,pipe";
char readbuffer[80];


int *write_fd = &fd[1]; //可写
int *read_fd = &fd[0]; //read


result = pipe(fd); //create pipe


if(-1 == result){
printf("create pipe faile");
return -1;
}


pid=fork(); //分叉程序


if(-1 == pid){
printf("fork 进程失败\n");
return -1;
}


if(0 == pid ){
close(*read_fd);
/*向管道端写入字符*/
result=write(*write_fd,string,strlen(string));


}else{
close(*write_fd);
/* read pipe data */
nbytes=read(*read_fd,readbuffer,sizeof(readbuffer));
printf("接收到%d 个数据,内容:%s \n",nbytes,readbuffer);
printf("sizeof(readbuffer) = %d\n",sizeof(readbuffer));
}


return 0;

}


--------------测试结果

[root@luozhonghua 04]# ./ex04-3-pipe02
接收到10 个数据,内容:hello,pipe
sizeof(readbuffer) = 80


分享到:
评论

相关推荐

    实验四:Linux下进程管道通信.docx

    实验的目标是理解和掌握Linux操作系统中进程间通信的管道机制,通过系统调用pipe()实现数据交换。管道是一种特殊类型的文件,它允许相关进程之间进行单向通信。在这个实验中,我们关注三个具体任务。 ### 任务1 这...

    C语言 Linux进程间通信

    以上代码示例通过实际的C语言代码展示了Linux环境下两种进程间通信方式:共享内存和管道的实现。这两种方式都有其独特的优势和应用场景。共享内存非常适合需要大量数据交换的情况,而管道则适用于简单数据传输或...

    linux进程间通信与同步.pdf

    ### Linux进程间通信与同步详解 #### 一、概述 在多任务操作系统中,进程间通信与同步机制是解决进程间数据交换与资源共享的关键技术。这些机制确保了多个并发运行的任务能够有效地协作,并且避免了资源冲突。对于...

    实验 Linux进程通信的参考答案

    实验 Linux 进程通信的参考答案 Linux 进程通信是指在操作系统中,多个进程之间进行数据交换和同步的机制。在 Linux 中,进程通信可以通过信号、管道和共享内存等方式实现。 一、信号机制 在 Linux 中,信号是一...

    linux进程间通信ppt

    【Linux进程间通信】是操作系统中进程协作的重要方式,它允许不同的进程共享数据和资源,协同完成任务。在Linux系统中,进程间通信(IPC,Inter-Process Communication)包括多种技术,如管道、信号、信号量、共享...

    UNIX Linux实验教程 4实验四Linux进程间通信.doc

    UNIX/Linux 进程间通信实验教程 UNIX/Linux 操作系统提供了一组系统调用作为用户使用其进程间通信机制的接口。进程间通信是指在多任务计算机系统中,每个进程都具有自己独立的全局变量和局部变量,子进程几乎完全...

    Linux进程通信代码

    本文将详细解析标题“Linux进程通信代码”所涉及的五种主要的IPC方式:匿名管道、命名管道、消息队列、信号量和信号,以及如何在C语言环境下实现这些通信机制。 1. **匿名管道(Anonymous Pipe)** 匿名管道是最早...

    linux下进程间通信的研究与实现

    本文将详细探讨Linux下几种主要的进程间通信机制,并结合Unix的历史背景进行分析。 首先,我们来看一下Linux中的线程。线程是程序执行的基本单元,它拥有独立的栈和控制块,但不拥有私有内存空间。线程是在进程中...

    Linux进程间通信--Linux进程间通信

    1. 管道(Pipe):管道是 Linux 中的一种基本的进程间通信机制,它允许不同的进程通过读写操作来交换数据。管道可以是匿名管道或命名管道,匿名管道只能用于具有亲缘关系的进程之间的通信,而命名管道可以用于任何...

    Linux 进程间通信

    ### Linux 进程间通信详解 #### 一、管道及有名管道 在深入探讨Linux中的进程间通信(IPC)机制之前,我们先了解一个基本概念:**进程**。进程是程序执行的一个实例,每个进程都有自己的地址空间。当多个进程需要...

    图解linux进程间通信机制

    本文将深入解析Linux进程间通信机制,通过源代码分析和流程图来帮助理解各种IPC方法。 首先,我们要理解进程的概念。在Linux系统中,进程是程序的一次执行实例,每个进程都有自己的内存空间,相互独立。为了实现...

    深刻理解Linux进程间通信.pdf

    Linux进程间通信(IPC)是操作系统中非常重要的部分,它包括多种机制用于进程间的数据交换。了解这些机制对于进行系统编程和软件开发非常重要。本文档详细介绍了管道、信号、消息队列、信号量和共享内存等通信方法。...

    深刻理解Linux进程间通信

    ### 深刻理解Linux进程间通信 #### Linux进程间通信概述 进程间通信(Inter-Process Communication,简称IPC)是指在多进程环境下,不同进程之间进行数据交换或同步操作的技术。Linux作为一款广泛使用的开源操作...

    linux平台下实现进程间通信的一种:pipe

    本篇文章将深入探讨Linux下的管道通信,并以C语言为例,解析如何创建和使用管道。 首先,管道的特性是半双工通信,即数据只能在一个方向上流动,不能同时双向传输。它由一个内核维护的缓冲区组成,两个进程通过共享...

    linux进程间通信讲义及代码.

    Linux进程间通信(IPC,Inter-Process Communication)是操作系统中一项关键的技术,它允许不同的进程之间交换数据,协同完成复杂的任务。本讲义主要面向初中级Linux学者,旨在深入理解并掌握这一领域的核心概念和...

    Linux下的进程间通信 详解

    ### Linux下的进程间通信详解 #### 一、引言 在多进程的环境中,进程间通信(IPC,Inter-Process Communication)是操作系统中一个至关重要的功能。Linux作为一款优秀的开源操作系统,提供了多种进程间通信机制,...

    Linux进程间通信课件代码.rar

    4. Linux程序设计上机指导书5:Linux进程间通信.pdf 是一份详细的指导文档,很可能包含理论介绍、步骤解析、实例分析和练习题,旨在帮助学习者深入理解和应用Linux进程间通信技术。 这些代码和教材将涵盖如下知识点...

    Linux进程间通讯视频教程

    本教程通过6个视频,深入浅出地讲解了Linux进程间通信的关键概念和技术。 首先,我们来了解一下什么是进程间通信。在Linux系统中,进程是程序的一次执行实例,每个进程都有自己的独立内存空间,因此它们之间的数据...

    linux进程间通信

    提供的两份文档《7.0_Linux进程间通讯_上.pdf》和《7.1_Linux进程间通讯_下.pdf》将详细阐述上述各种通信机制,并可能包含实例代码和实践指导,对于深入理解和掌握Linux进程间通信非常有帮助。 总结,Linux进程间...

Global site tag (gtag.js) - Google Analytics