第一个程序是数据生产者程序。它在需要时创建管道,然后尽可能快地向管道中写入数据。为了方便起见,本程序没有初始化缓冲区。
生产者程序
/*数据生产者*/
#include
#include
#include
#include
#include
#include
#include
#include
#define FIFO_NAME "/tmp/my_fifo"
#defin...
分类:
系统相关 时间:
2015-01-01 17:24:25
阅读次数:
301
标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行。这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程。popen函数还创建一个管道用于父子进程间通信。父进程要么从管道读信息,要么向管道写信息,至于是读还是写取决于父进程调用popen时传递的参数...
分类:
其他好文 时间:
2014-12-31 16:06:27
阅读次数:
225
#include "stdio.h"#include "string.h"#include "unistd.h"#include "sys/shm.h"int main(){ int id = shmget(0x8888, 100, IPC_CREAT|0644); if (id==-1) {...
分类:
系统相关 时间:
2014-12-30 18:42:42
阅读次数:
252
#include "stdio.h"#include "sys/socket.h"#include "unistd.h"int main(){ int s[2]; socketpair(AF_LOCAL, SOCK_STREAM, 0, s); int n; char buf[100]; ...
分类:
系统相关 时间:
2014-12-30 18:33:44
阅读次数:
233
进程间通信需要解决三个问题:一个进程如何把消息传给另一个;确保两个或更多的进程在关键活动中不会出现交叉,例如,飞机订票系统中两个不同的进程试图为两个客户争夺飞机上的最后一张票;保证进程间的先后顺序,如进程A产生数据,进程B打印数据,则进程B在进程A完成之间必须等待。第一个问题对线程而言比较容易,因为...
分类:
编程语言 时间:
2014-12-26 16:29:43
阅读次数:
142
①匿名管道(pipe)匿名管道(pipe)管道是一种半双工的通信方式,数据只能单向流动。如果要进行双工通信,需要建立两个管道。管道只能在具有亲缘关系的进程间使用,例如父子进程或兄弟进程。②有名管道(mkfifo)有名管道也是双半工的通信方式,但它允许无亲缘关系的进程间使用。③信号量(semophor...
分类:
系统相关 时间:
2014-12-26 16:24:33
阅读次数:
330
Android 官方文档原创译文《Bound Services》。
Bound 类型的服务是客户端-服务器模式的服务端。Bound 类型的服务允许组件(比如 Activity)对其进行绑定、发送请求、接收响应、甚至进行进程间通信(IPC)。 Bound 类型的服务一般仅存活于为其他应用程序组件服务...
分类:
移动开发 时间:
2014-12-25 16:18:38
阅读次数:
329
培训的第四阶段:通过编写驱动,从应用层,内核层,再到底层硬件之间的关系。明白内核驱动的意义。现在开始才是重头戏,前面的都是铺垫。 正式编写驱动前,要先了解linux内核代码的组成。linux主要是由五个子系统组成:进程调度,内存管理,文件系统,网络接口以及进程间通信。linux源代码...
分类:
系统相关 时间:
2014-12-23 22:23:13
阅读次数:
183
首先我们了解一下 IPC和AIDL
IPC:进程间通信
AIDL:Android Interface Definition Language,即Android接口定义语言。
为什么使用:
Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。
为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Proc...
分类:
移动开发 时间:
2014-12-22 18:08:34
阅读次数:
229
原文:Python Socket 网络编程
Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页、QQ 聊天、收发 email 等等。要解决网络上两台主机之间的...
分类:
编程语言 时间:
2014-12-17 12:38:37
阅读次数:
381