【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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系统本身为进程间通信提供了很多的方式,比如说管道、共享内存、socket通信等。管道的使用十分简单,在创建了匿名管道之后,我们只需要从一个管道发送数据,再从另外一个管道接受...
C语言字符串处理、Linux系统编程、多进程、多线程、进程间通信、线程同步、实现的功能有暂停、快进、快退、显示歌词、单曲循环、列表循环、随机播放、声音调节等
适合初学者学习基于c语言的linux应用程序开发,本资源包含c语言的基本知识点,包括线程,锁,管道,消息队列,信号,共享内存,socket通信等等小案例,以及结业测试和答案。对于小白有很不错的参考作用。
Linux下C语言开发环境.ppt 02第02章 Linux下C语言开发工具.ppt 03第03章 Linux进程存储管理.ppt 04第04章 ANSI C文件管理.ppt 05第05章 POSIX文件及目录管理.ppt 06第06章 普通文件、连接文件及目录文件属性...
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 线程之间的...
8.2 管道通信 8.3 信号通信 8.4 共享内存 8.5 消息队列 8.6 实验内容 本章小结 思考与练习 第9章 多线程编程 9.1 Linux下线程概述 9.2 Linux线程实现 9.3 实验内容——...
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的编译概述...
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...
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...
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...
第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的...
已经整理好目录,需要下载3个包,因为只能上传50M,...第13章 进程间通信:管道 第14章 信号量、共享内存和消息队列 第15章 套接字 第16章 用GTK+进行GNOME编程 第17章 用Qt进行KDE编程 第18章 Linux标准33
已经整理好目录,需要下载3个包,因为只能上传50M,所以...第13章 进程间通信:管道 第14章 信号量、共享内存和消息队列 第15章 套接字 第16章 用GTK+进行GNOME编程 第17章 用Qt进行KDE编程 第18章 Linux标准33
已经整理好目录,需要下载3个包,因为只能上传50M,...第13章 进程间通信:管道 第14章 信号量、共享内存和消息队列 第15章 套接字 第16章 用GTK+进行GNOME编程 第17章 用Qt进行KDE编程 第18章 Linux标准33
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...
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...
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...
第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 控制结构语句 ...