`
忧里修斯
  • 浏览: 436254 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

管道读写

 
阅读更多
#include <stdio> #include <stdlib> #include <unistd> #include <string> int main(int argc,char *argv[]){ int pipe_fd[2]; pid_t pid; char buff_r[100]; char *p_wbuf,*wdata; wdata = "Hello world"; int r_num; //初始化 memset(buff_r,0,sizeof(buff_r)); //创建管道 if(pipe(pipe_fd) 0){ printf("%d nums read from the pipe is %s\n",r_num,buff_r); } //关闭子进程读描述符 close(pipe_fd[0]); exit(0); }else if(pid &gt; 0){ //父进程 //关闭父进程读描述符 close(pipe_fd[0]); //向管道写数据 if((write(pipe_fd[1],wdata,strlen(wdata))) != -1){ printf("write success\n"); } //关闭父进程写描述符 close(pipe_fd[1]); sleep(3); //等待子进程退出 waitpid(pid,NULL,0); exit(0); } } </string></unistd></stdlib></stdio>
分享到:
评论

相关推荐

    Delphi7实现管道方式操作控制台

    在这个场景中,我们关注的是如何使用Delphi7来实现一个利用管道(Pipe)技术来操作控制台的应用程序。管道是操作系统提供的一种通信机制,允许不同进程之间共享数据,常用于命令行接口的交互。 首先,我们要理解...

    匿名管道示例代码 vc

    在实际编程中,可能还需要处理错误,如无法创建管道、子进程启动失败、读写操作出错等。同时,考虑到并发和多线程环境,可能需要使用互斥量(Mutex)或其他同步机制来保护管道的访问。 这个VC6项目提供的匿名管道...

    ipc.rar_IPC_管道_管道通信_管道通信c++

    3. **管道读写**:使用`read()`和`write()`系统调用来实现数据的读取和写入。一个进程通过写端将数据放入管道,另一个进程则从读端取出数据。由于管道是半双工的,所以一次只能有一个方向的数据流。 4. **多进程...

    命名管道实现

    一旦连接成功,就可以通过管道读写数据。 - 读写:使用ReadFile和WriteFile进行数据交换。 - 关闭:在完成通信后,关闭管道并释放资源。 2. 客户端: - 连接:使用CreateFile找到服务器创建的命名管道并建立连接...

    进程间通信 匿名管道

    虽然这里没有明确使用MFC的描述,但可以使用`CArchive`类结合`CFile`,以面向对象的方式处理管道读写,使代码更易理解和维护。 7. **资源释放**:在完成通信后,务必关闭管道的读写端句柄,防止资源泄露。可以使用`...

    VC++和C#管道通信(2015更新)

    - VC++中,可以选择同步或异步方式处理管道读写。同步操作会阻塞,直到数据传输完成;异步操作则会立即返回,通过事件或回调处理结果。 - C#中,`NamedPipeServerStream`和`NamedPipeClientStream`类提供了...

    易语言管道通道源码.zip

    易语言源码中的示例通常会展示如何创建管道,设置管道读写模式,以及如何正确处理数据传输过程中的错误。通过这些源码,我们可以学习到如何在易语言环境中构建高效的进程间通信系统。 在实际应用中,管道通道常用于...

    CMD_CALL_CMD匿名管道封装_

    这个封装通常涉及到创建管道、启动新的CMD进程、通过管道读写数据以及正确处理进程间的同步。 在"CMD_CALL_CMD匿名管道封装_"项目中,`myCMD_CALL.c`文件很可能是主要的实现代码,它将包含定义管道、启动CMD进程、...

    易语言DOS管道技术源码.zip易语言项目例子源码下载

    通过创建管道,设置管道读写端口,以及启动或控制相关进程,我们可以实现数据的实时传递。 源码中可能包括以下几个关键部分: 1. **管道创建**:使用易语言的系统调用,如`创建管道`,创建一个管道对象,定义管道...

    操作系统-进程的管道通信--实验报告.doc

    不仅学会了如何使用C语言编程实现管道通信,还掌握了如何通过`lockf`函数实现对管道读写操作的同步控制。这对于理解和设计复杂的进程间通信系统具有重要的意义。此外,实验中通过循环读写的方式验证了管道通信的有效...

    Linux管道符与重定向.pdf

    使用管道进行通信时,两端的进程向管道读写数据是通过创建管道时,系统设置的文件描述符进行的。从本质上说,管道也是一种文件,但它又和一般的文件有所不同,可以克服使用文件进行通信的两个问题,这个文件只存在...

    易语言使用管道运行DOS命令回显执行结果

    在实际编程过程中,我们需要注意处理各种可能的错误,比如进程创建失败、管道读写异常等。此外,为了确保程序的稳定性和安全性,还应该考虑到线程同步和资源释放等问题。 压缩包内的`API模块制作取DOS执行结果.e`和...

    电子科大操作系统实验课Linux通过管道实现进程间通信

    【知识点详解】 ... - 父进程需谨慎处理管道读写,以防止数据丢失或死锁。 这个实验为理解Linux进程通信的基本概念和实践提供了很好的平台,通过实际操作加深了对管道、`fork()`和进程同步的理解。

    linux环境进程间通信之有名管道-fisher0821-ChinaUnix博客1

    有名管道读写规则** - **读数据**:如果FIFO有写进程打开并且有数据,阻塞的读操作会被唤醒。未设置阻塞标志的读操作在FIFO无数据时会返回-1,errno为EAGAIN,提示稍后再试。如果FIFO无写进程打开,设置了阻塞标志...

    Linux环境进程间通信

    #### 1.1.3 管道读写规则 - 写端关闭后,读端会立即读到EOF(文件结束)。 - 读端关闭后,写端无法再写入,但写端不会立即知道读端已关闭。 - 管道容量有限,一般为64KB,超过此容量会导致写操作阻塞。 #### 1.1.4 ...

    Linux上下文切换性能测试的一种新方法.pdf

    使用管道读写切换的方法程序编写相对复杂,所得到的测试结果是上下文切换延时和管道读写延时的总和,而管道读写延时的开销相对较大,会使得测试结果不够精确。 为了提高上下文切换测试的精确度,本文提出了一种在...

    进程间通信,进程间通信

    连接成功后,双方就可以通过管道读写数据了。服务器端通常会设置一个循环,不断地读取客户端发送的数据并做出响应。 在实际的程序设计中,需要注意的是数据的格式化和同步问题。因为管道是字节流,所以需要确保发送...

    201800130005_张畅_实验二1

    实验中遇到的问题是,在管道读写时,按照通常的习惯,从0端口写入,1端口读出,但出现了阻塞现象。经过调整,发现交换读写端口后,程序运行正常。这表明在管道通信中,必须确保读写的正确方向,否则可能导致阻塞或...

Global site tag (gtag.js) - Google Analytics