闲着无聊,写一个代码开心开心

博主作为C语言初学者,面临算法理解困难和指针、结构体运用不熟练的问题。希望得到高手的指导,分享了一段可用于表白的简单代码。
摘要由CSDN通过智能技术生成

初学c语言,有许多问题没有解决,在算法方面更是一团糟,因为知识储备太少,所以差不多只能写这简单的代码;指针和结构体不能灵活运用,使我十分苦恼。恳请大神给予建议,一定虚心接受!!!!

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
logon(){
   
 	printf("\n\n\n\n\txxx\n");
 	printf("\t我喜欢你\n");
 	printf("\t做我女朋友吧\n");
 	printf("\t傻憨憨,按enter\n");
 	printf("\n");
 	printf("\n"); 
 	printf("\n");printf("\n");
 	system("pause");
 }
 int   wendang(){
   
 	int i;
	 
好的,这是一个简单的操作系统进程通信睡眠的理发师问题的代码示例: ```c #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<sys/wait.h> #include<sys/types.h> #include<sys/ipc.h> #include<sys/msg.h> //定义消息队列结构体 struct msgbuf { long mtype; char mtext[100]; }; //理发师进程函数 void barberProcess(int msgqid) { struct msgbuf msg; //理发师闲着,先阻塞等待顾客的到来 msgrcv(msgqid, &msg, sizeof(msg.mtext), 1, 0); printf("理发师掏出电推剪咔擦咔擦地为顾客理发...\n"); } //顾客进程函数 void customerProcess(int msgqid) { struct msgbuf msg; msg.mtype = 1; //顾客到来,先发消息给理发师 msgsnd(msgqid, &msg, sizeof(msg.mtext), 0); printf("有个顾客来了,希望理发师给我理发...\n"); //等待理发师理发完成并通知 msgrcv(msgqid, &msg, sizeof(msg.mtext), 2, 0); printf("理发师给我理完发了,我很满意!\n"); } int main() { int msgqid; //消息队列标识符 pid_t pid; //创建消息队列 msgqid = msgget(IPC_PRIVATE, 0644 | IPC_CREAT); if (msgqid == -1) { perror("msgget error"); exit(EXIT_FAILURE); } pid = fork(); if (pid == -1) { perror("fork error"); exit(EXIT_FAILURE); } else if (pid == 0) { //子进程是理发师进程 barberProcess(msgqid); } else { //父进程是顾客进程 customerProcess(msgqid); //顾客理完发后通知理发师 struct msgbuf msg; msg.mtype = 2; msgsnd(msgqid, &msg, sizeof(msg.mtext), 0); //等待理发师处理完毕 wait(NULL); //删除消息队列 msgctl(msgqid, IPC_RMID, NULL); } return 0; } ``` 上面这段代码一个用于解决理发师问题的简单示例,主要利用了操作系统提供的消息队列机制实现进程间通信,实现了顾客向理发师发起请求,等待理发师处理并返回结果的过程。当然,这只是一个简单的示例,实际上,理发师问题通常不是一个简单的问题,不同的场景和要求会有不同的解决方案。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值