进程线程的学习让我对通信有了更深一步的了解,有名管道,无名管道使用消息队列、共享内存等方法实现互相通信,每一种写法的完成,都能加深我的印象,对我在学习嵌入式的路上提供了很大的帮助。
两个.c文件实现了qq的基本通信,可以做到互相发送信息且不会乱序。
有名管道本来是半双工,但可以实现全双工。下图可以看到有名管道实现全双工的方法。
以下是实现的代码:
pidfifo1.c
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<errno.h>
#include<string.h>
#include<fcntl.h>
#define FIFO1 "myfifo1"
#define FIFO2 "myfifo2"
int main(void)
{
char buf[50] = {'\0'};
pid_t pid = 0;
pid = fork();
//1.创建2管道
if(mkfifo(FIFO1,0777) < 0 && errno != EEXIST)
{
perro