`
java-mans
  • 浏览: 11425533 次
文章分类
社区版块
存档分类
最新评论

linux下的C语言开发(管道通信)

 
阅读更多
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

Linux系统本身为进程间通信提供了很多的方式,比如说管道、共享内存、socket通信等。管道的使用十分简单,在创建了匿名管道之后,我们只需要从一个管道发送数据,再从另外一个管道接受数据即可。

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

int pipe_default[2];  

int main()
{
    pid_t pid;
    char buffer[32];

    memset(buffer, 0, 32);
    if(pipe(pipe_default) < 0)
    {
        printf("Failed to create pipe!\n");
        return 0;
    }

    if(0 == (pid = fork()))
    {
        close(pipe_default[1]);
        sleep(5);
        if(read(pipe_default[0], buffer, 32) > 0)
        {
            printf("Receive data from server, %s!\n", buffer);
        }
        close(pipe_default[0]);
    }
    else
    {
        close(pipe_default[0]);
        if(-1 != write(pipe_default[1], "hello", strlen("hello")))
        {
            printf("Send data to client, hello!\n");
        }
        close(pipe_default[1]);
        waitpid(pid, NULL, 0);
    }

    return 1;
}
下面我们就可以开始编译运行了,老规矩分成两步骤进行:(1)输入gcc pipe.c -o pipe;(2)然后输入./pipe,过一会儿你就可以看到下面的打印了。
[test@localhost pipe]$ ./pipe
Send data to client, hello!
Receive data from server, hello!

分享到:
评论

相关推荐

    linux C语言开发管道通信实例详解

    linux C语言开发管道通信  Linux系统本身为进程间通信提供了很多的方式,比如说管道、共享内存、socket通信等。管道的使用十分简单,在创建了匿名管道之后,我们只需要从一个管道发送数据,再从另外一个管道接受...

    Linux环境C语言调用Mplayer实现音乐播放器(其中缺少了一个FIFO管道文件)

    C语言字符串处理、Linux系统编程、多进程、多线程、进程间通信、线程同步、实现的功能有暂停、快进、快退、显示歌词、单曲循环、列表循环、随机播放、声音调节等

    linux应用程序开发-C语言基础学习

    适合初学者学习基于c语言的linux应用程序开发,本资源包含c语言的基本知识点,包括线程,锁,管道,消息队列,信号,共享内存,socket通信等等小案例,以及结业测试和答案。对于小白有很不错的参考作用。

    Linux高级程序设计PPT

    Linux下C语言开发环境.ppt 02第02章 Linux下C语言开发工具.ppt 03第03章 Linux进程存储管理.ppt 04第04章 ANSI C文件管理.ppt 05第05章 POSIX文件及目录管理.ppt 06第06章 普通文件、连接文件及目录文件属性...

    嵌入式Linux应用程序开发标准教程(第2版全)

    8.7.1 管道通信实验 8.7.2 共享内存实验 8.8 本章小结 8.9 思考与练习 第9章 多线程编程 9.1 Linux线程概述 9.1.1 线程概述 9.1.2 线程机制的分类和特性 9.2 Linux线程编程 9.2.1 线程基本编程 9.2.2 线程之间的...

    华清远见嵌入式linux应用程序开发技术详解下载(内部资料).rar

     8.2 管道通信   8.3 信号通信  8.4 共享内存   8.5 消息队列  8.6 实验内容   本章小结   思考与练习 第9章 多线程编程   9.1 Linux下线程概述   9.2 Linux线程实现   9.3 实验内容——...

    嵌入式Linux应用程序开发详解

    3.1.2 Linux下C语言编程环境概述 62 3.2 进入Vi 63 3.2.1 Vi的模式 63 3.2.2 Vi的基本流程 63 3.2.3 Vi的各模式功能键 65 3.3 初探Emacs 66 3.3.1 Emacs的基本操作 67 3.3.2 Emacs的编译概述...

    精通LINUX下的C编程(配套光盘)第三部分

    2.2 Linux下的C语言开发环境 2.3 编辑器的使用 2.4 编译器gcc的使用 2.5 LinuxC程序的开发过程 2.6 make工具及其使用 2.7 使用autoconf 2.8 使用automake 2.9 使用gdb调试程序 2.10 小结 习题 第3章 Linux...

    精通LINUX下的C编程(配套光盘)第一部分

    2.2 Linux下的C语言开发环境 2.3 编辑器的使用 2.4 编译器gcc的使用 2.5 LinuxC程序的开发过程 2.6 make工具及其使用 2.7 使用autoconf 2.8 使用automake 2.9 使用gdb调试程序 2.10 小结 习题 第3章 Linux...

    精通LINUX下的C编程(配套光盘)第二部分

    2.2 Linux下的C语言开发环境 2.3 编辑器的使用 2.4 编译器gcc的使用 2.5 LinuxC程序的开发过程 2.6 make工具及其使用 2.7 使用autoconf 2.8 使用automake 2.9 使用gdb调试程序 2.10 小结 习题 第3章 Linux...

    嵌入式Linux C编程入门(第2版) PPT

    第2章 嵌入式linux c语言开发工具 32 2.1 嵌入式linux下c语言概述 32 2.1.1 c语言简史 33 2.1.2 c语言特点 33 2.1.3 嵌入式linux c语言编程环境 34 2.2 嵌入式linux编辑器vi的使用 35 2.2.1 vi的...

    Linux程序设计中文第4版.part2

    已经整理好目录,需要下载3个包,因为只能上传50M,...第13章 进程间通信:管道 第14章 信号量、共享内存和消息队列 第15章 套接字 第16章 用GTK+进行GNOME编程 第17章 用Qt进行KDE编程 第18章 Linux标准33

    Linux程序设计中文第4版.part1

    已经整理好目录,需要下载3个包,因为只能上传50M,所以...第13章 进程间通信:管道 第14章 信号量、共享内存和消息队列 第15章 套接字 第16章 用GTK+进行GNOME编程 第17章 用Qt进行KDE编程 第18章 Linux标准33

    Linux程序设计中文第4版.part3

    已经整理好目录,需要下载3个包,因为只能上传50M,...第13章 进程间通信:管道 第14章 信号量、共享内存和消息队列 第15章 套接字 第16章 用GTK+进行GNOME编程 第17章 用Qt进行KDE编程 第18章 Linux标准33

    Linux编程从入门到精通

    6.2.2 用C语言创建管道 225 6.2.3 简便方法 229 6.2.4 管道的原子操作 233 6.2.5 关于半双工管道需要注意的几个 问题 233 6.3 命名管道 234 6.3.1 基本概念 234 6.3.2 创建FIFO 234 6.3.3 FIFO操作 235 6.3.4 FIFO...

    LINUX编程白皮书 (全集)

    6.2.2 用C语言创建管道 225 6.2.3 简便方法 229 6.2.4 管道的原子操作 233 6.2.5 关于半双工管道需要注意的几个 问题 233 6.3 命名管道 234 6.3.1 基本概念 234 6.3.2 创建FIFO 234 6.3.3 FIFO操作 235 6.3.4 FIFO...

    linux编程白皮书

    6.2.2 用C语言创建管道 225 6.2.3 简便方法 229 6.2.4 管道的原子操作 233 6.2.5 关于半双工管道需要注意的几个 问题 233 6.3 命名管道 234 6.3.1 基本概念 234 6.3.2 创建FIFO 234 6.3.3 FIFO操作 235 6.3.4 FIFO...

    边干边学Linux__第二版_doc格式

    第7章 C语言开发工具 7.1 编写程序的工具 7.2 编C语言程序 7.3 make工具 7.4 gdb调试工具 第8章 Bourn Again Shell编程 8.1 bash脚本的建立和运行 8.2 shell的变量 8.3 shell脚本位置参数的传递 8.4 控制结构语句 ...

Global site tag (gtag.js) - Google Analytics