《Linux操作系统设计实践》
《Linux操作系统设计实践》实验二:进程通信
实验目的:
进一步了解和熟悉 Linux 支持的多种 IPC 机制,包括信号,管道,消息队列,信号量,共享内存。
实验环境: redhat
实验内容:
(1)进程间命名管道通信机制的使用:使用命名管道机制编写程序实现两个进程间的发送接收信息。
(2)进程间消息队列通信机制的使用:使用消息队列机制自行编制有一定长度的消息(1k 左右)的发送和接收程序。
(3)进程间共享存储区通信机制的使用:使用共享内存机制编制一个与上述(2)功能相同的程序。并比较分析与其运行的快慢。
实验代码验证:
(1).使用命名管道机制编写程序实现两个进程间的发送接收信息。
#include
#include
#define FIFO_FILE "MYFIFO"
int main(int argc, char *argv[])
{
FILE *fp;
int i;
if (argc<=1)
{
printf("usage: %s \n",argv[0]);
exit(1);
}
if ((fp = fopen(FIFO_FILE, "w")) == NULL)
{
printf("open fifo failed. \n");
exit(1);
}
for (i = 1; i < argc; i++)
{
if (fputs(argv[i],fp) == EOF)
{
printf("write fifo error. \n");
exit(1);
}
if (fputs(" ",fp) == EOF)
{
printf("write fifo error. \n");
exit(1);
}
}
fclose(fp);
return 0;