发布时间:2015-04-16 20:45:54
一、简介共享内存为在多个进程之间共享和传递数据提供了一种有效的方式。但它本身并未提供同步机制。在实际编程中,可以使用 信号量, 传递消息(使用管道或IPC消息), 生成信号, 条件变量,等方法来提供读写之间的有效的同步机制。本例程序使用信号量进行同步,主要是因为它方便,使用广泛,且独立于进程。本例程序实现了,生产者进程: 每次读取YUV输入文件的一帧, 然后将其写到共享内存中。消费者进程: 每次从共享内存中读到一帧, 处理后, 将其写到输出文件。两个进程间使用信号量来保证同步处理每一帧。......【阅读全文】
发布时间:2015-04-16 20:45:46
很简单的一个FIFO应用示例,两个进程间,使用FIFO进行通信.闲言少述,直接上文:my $cmd_ff = "./ffmpeg -i ....";my $uuid = `uuidgen`; // 生成不重名FIFO的名称chomp $uuid;system("mkfifo $uuid"); // 创建FIFOmy $pid_ffmpeg = fork; // 创建进程if (0 == $pid_ffmpeg){&......【阅读全文】
发布时间:2015-04-16 20:45:31
前言:perl和C语言都提供了消息队列的机制,而且这两种语言中的消息队列可以相互兼容.当涉及到系统架构时,可以用C语言实现核心计算模块,用Perl实现业务逻辑层,而这两层间可以通过消息队列来实现不同语言的进程间的通信.本文先用两个示例程序讲解Perl对消息队列的实现。再一个示例程序讲解Perl与C之间使用消息队列.........【阅读全文】
发布时间:2015-04-16 20:45:16
功能描述在消息队列上进行收发消息。为了发送消息,调用进程对消息队列进行写入时必须有写权能。接收消息时必须有读权能。用法:#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);ssize_t msgrcv(int msqid, void *msgp, size_.........【阅读全文】