`
lobin
  • 浏览: 417721 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C: Linux C 编程 - 管道

 
阅读更多

管道

管道是一种单向数据通道。可用于进程间通信。

pipe

 

函数原型

int pipe(int pipefd[2]);

 

pipe2

 

函数原型

int pipe2(int pipefd[2], int flags);

 

虽说可用于进程间通信,但其实也可以用于进程内通信,如下面例子,这样做其实是多此一举,仅作演示:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int main()
{
  char *message = "hello, c\n";
  int size = strlen(message);
  char *buf = (char *) malloc(size + 1);

  int pipefd[2];
  if (pipe(pipefd))
  {
    printf("pipe error\n");
    return 1;
  }
  write(pipefd[1], message, size);

  printf("read: before=%s\n", buf);
  read(pipefd[0], buf, size);

  printf("read: %s\n", buf);
  free(buf);
}

 

分享到:
评论

相关推荐

    Linux实验八:LinuxC-编程-IO-重定向和管道.doc

    通过这些实验,你可以深入理解Linux系统中I/O重定向和管道的工作原理,以及如何在C程序中实现它们。这些基础知识对于系统级编程和shell脚本编写非常重要,因为它们允许我们灵活地控制程序的输入输出,以及在不同进程...

    Linux下C语言编程--信号处理函数.

    ### Linux下C语言编程——信号处理函数 #### 一、信号的基本概念与产生 在Linux系统中,**信号**是一种轻量级的进程间通信机制,用于通知接收进程某个特定事件的发生。它不仅可以由硬件异常(如除零错误)触发,也...

    Linux下C语言编程--文件的操作

    根据提供的信息,我们可以详细探讨 Linux 下 C 语言编程中关于文件操作的相关知识点。这包括文件的创建、读写、属性管理、目录文件操作以及管道文件等主题。 ### 1. 文件的创建和读写 #### 系统调用 `open` `open...

    Linux下C语言应用编程(作者-杨铸)配套教学ppt

    这组资源,"Linux下C语言应用编程(作者-杨铸)配套教学ppt",提供了对Linux环境下C语言编程的深入理解和实践指导。以下是一些核心知识点的详细说明: 1. **Linux下C语言编程环境**: - `11-Linux下C语言编程环境....

    Linux下C语言应用编程-作者-杨铸-配套ppt-源代码-教学大纲

    源代码文件“linuxc.tgz”是一个压缩包,其中包含了书中各个主题的实例代码。学生可以参考这些代码来加深理解,同时通过实际操作来锻炼编程技能。源代码涵盖了上述所有PPT讲解的主题,如简单的文件操作示例、多进程...

    linux-c编程linux-c编程

    ### Linux-C编程重要知识点概述 #### 一、基础知识 ##### 源程序编译 - **GCC编译器**: 在Linux环境下,最常用的C语言编译器是GNU Compiler Collection (GCC)。它不仅支持C语言,还支持C++、Objective-C、Fortran...

    Linux操作系统实验报告

    通过以上实验,学生能够全面地理解和掌握Linux操作系统的基本命令、编程技巧、进程间通信、内存管理、设备驱动以及网络编程等多个方面的知识和技术,为进一步深入研究和应用Linux操作系统奠定坚实的基础。

    linux系统编程_linux系统编程-中文_

    进程间通信(IPC)也是Linux系统编程的重要部分,包括管道、消息队列、共享内存、信号量和套接字等方法。了解这些机制如何协同工作,可以帮助你设计出高效的多进程和多线程程序。 最后,理解Makefile和构建系统是...

    c语言linux系统编程入门

    ### C语言Linux系统编程入门知识点概述 #### 一、Linux下的C语言编程基础 ##### 1. 源程序的编译 - **GCC编译器**: 在Linux环境下,使用GCC(GNU Compiler Collection)作为主要的编译工具。GCC不仅支持C语言,还...

    LINUX编程白皮书 LINUX编程白皮书

    其次,书中的内容可能涉及C语言编程,因为C语言是Linux编程的主要语言。读者将学习如何使用标准C库,以及如何编写与系统接口交互的代码,如系统调用。此外,书中的章节可能还会讲解C++编程,特别是在Linux环境下的...

    头歌Linux系统编程之c编程入门

    【头歌Linux系统编程之C编程入门】是一个关于在Linux环境下进行C语言编程学习的教程。这个教程覆盖了从基础的C语言编程到更高级的Linux系统编程技术,旨在帮助初学者逐步掌握在Linux系统中编写C程序的能力。 1. **...

    Linux-基本命令,ppt版本

    Linux操作系统是基于Unix的一种开源操作系统,它以其稳定性和安全性被广泛应用于服务器领域。对于初学者而言,掌握Linux的基本命令是入门的重要步骤。以下是一些关键的Linux命令及其用途: 1. **目录结构**: - `/...

    Linux高级编程-补充.pdfLinux高级编程-补充.pdf

    根据提供的文档信息,我们可以归纳出以下关键知识点,主要围绕Linux高级编程中的几个核心概念和技术细节展开。 ### 文件描述符管理 #### 文件描述符的特点 - **文件描述符**:在Unix/Linux系统中,每一个打开的...

    linux 编程教程 -- linux下编程入门

    Linux提供了丰富的开发环境和工具,支持多种编程语言,如C、C++、Python、Java等。本教程将带你踏入Linux编程的世界,了解其核心概念和常用工具。 1. **Linux基础知识** - Linux发行版:理解不同的Linux发行版(如...

Global site tag (gtag.js) - Google Analytics