【无标题】
2023-12-25 12:06:15
公示栏案例引入
a同学写完“数学课”后出去接电话,b同学进来写了“英语课考试”,a同学后来又进来,写了“取消”,从而导致其他的同学看了产生歧义。
程序逻辑设计:
代码
student1.c
#include <fcntl.h>
#include<unistd.h>
void main(){
int fd = 0;
fd = open("./board.txt",O_RDWR|O_APPEND);
/*写入 “数学课” */
write(fd,"class math ",11);
sleep(10);
/* 写入“取消” */
close(fd);
}
~
~
~
~
~
student2.c
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<fcntl.h>
void main(){
int fd = 0;
fd = open("./board.txt",O_RDWR|O_APPEND);
/* 写入"英语课考试" */
write(fd,"enlish exam ",20);
close(fd);
}
~
~
运行结果:
什么是信号量:
叙述一下:a进程 想操作文件前,先看 “标志” 是否为1,如果为1,则可以操作文件,如果 “标志” 为0,则等待…
这个标志 其实就是 信号量
信号量的实质:就是一个数字
图示中:获取 就是 减法 操作,释放就是加法操作
信号量的概念:
信号量的分类:
比如数值的初始值为2则为 计数信号量
创建/打开信号量 函数
信号量操作 和文件 类比
文章来源:https://blog.csdn.net/QQ1402369668/article/details/135193004
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!