Linux进程间通信——使用共享内存

来源:互联网 发布:软件维护不能用 编辑:程序博客网 时间:2024/05/01 05:18

实验目的

   通过编写共享内存实验,进一步了解使用共享内存的具体步骤,同时加深对共享内存的理解。在本实验中,采用信号量作为同步机制完善两个进程(“生产者”和“消费者”)之间的通信。

实验内容

   利用共享内存实现文件的打开和读写操作。所需知识点:信号量、共享内存。

实验流程图

   

实验代码

   本实验共需要5个文件,其中producer.c实现了生产者的功能,customer.c实现了消费者的功能,另外的shm_com.h、sem_com.c、sem_com.h是模块化后的文件,被producer.c和customer.c文件调用。实验结构图如下

 

  该5个文件,我已经上传到了资源,如有需要,请自行下载,点此下载

  producer.c

  

  

  customer.c

  

  

执行程序

   将上述5个文件编写后,先后使用命令编译

    gcc producer.c sem_com.c -o producer

    gcc customer.c sem_com.c -o customer

  

  在终端1执行producer

  

  在终端2执行customer

    

  在终端1中输入字符,结果如下

   

0 0