操作系统原理 实验三 进程间通信

该博客主要介绍了操作系统实验中关于进程间通信的内容,包括实验目的、预备知识和具体实验操作。实验涉及Linux系统的消息通讯机制和管道通信,通过msgget(), msgsnd(), msgrcv(), msgctl()等系统调用实现消息的发送和接收,并利用pipe()建立管道进行进程间的通信。同时,讨论了msgctl()在控制消息队列中的作用以及sleep(1)在管道通信中的功能。" 89675804,7918835,快速入门MySQL:关系型数据库操作指南,"['MySQL', '关系型数据库', '数据库操作', 'SQL语法']
摘要由CSDN通过智能技术生成

操作系统实验系列链接

注:在未加锁情况下,多进程运行结果具有不确定性,大家运行时候不用拘泥于结果
注:在未加锁情况下,多进程运行结果具有不确定性,大家运行的时候不用拘泥于结果
注:在未加锁情况下,多进程运行结果具有不确定性,大家运行的时候不用拘泥于结果

实验三 进程间通信

1、实验目的
Linux系统的进程通信机构(IPC)允许在任意进程间大批量地交换数据。本实验的目的是使学生了解和熟悉Linux支持的消息通讯机制及管道通信机制。
2、实验预备内容
阅读Linux系统的msg.c、sem.c和shm.c等源码文件,熟悉Linux的通信机制。
3、实验内容
(1)消息的创建,发送和接收。
①使用系统调用msgget(),msgsnd(),msgrcv(),及msgctl()等编制一长度为1k的消息的发送和接收程序。
②观察程序,说明控制消息队列系统调用msgctl()在此起什么作用?

#include<stdio.h>
#include<sys/types.h>
#include<sys/msg.h>
#include<sys/ipc.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include<sys/wait.h>

#define MSGKEY 75/*定义关键词MEGKEY*/

struct msgform/*消息结构*/
{
   
	long mtype;
	char mtxt[1024];/*文本长度*/
}msg;

int msgqid,i;

void CLIENT()
{
   
	int i;
	msgqid=msgget(MSGKEY,0777);
	for(i=10;i>=1;i--)
	{
   
		msg.mtype=i;
		printf(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值