- 博客(3)
- 收藏
- 关注
原创 使用flock()实现进程间通信
使用flock()实现进程间通信程序功能多进程实现从数字1到数字N的累加程序要求每个进程均参与运算,每个进程都抢着加,不使用任何睡眠策略;实现基础1、多进程读写一个文件flock()linux在多个进程同时操作同一份文件时,容易导致错乱,这个时候需要锁,保证文件的完成性;flock(文件描述符,操作类型);三种操作类型:共享锁:LOCK_SH,如果是读取不需要等待,如果是写入,需要等待读取完成;独占锁:LOCK_EX,无论写入还是读取都需要解锁;释放锁:LOCK_UNLOCK_NB
2021-10-22 19:33:19 278
原创 共享内存实现进程之间的通信
共享内存实现进程之间的通信共享内存允许两个或多个进程共享同一块内核存储区;共享内存创建流程:1、ftok 申请一个key_t注意:key_t ftok(char* pathname, int proj_id);(1)ftok函数需要给出两个参数(文件路径,项目id);文件路径确实存在,项目id为非0数字;(2)相同的文件路径与项目id返回相同的key_t,文件路径或者项目id的改变均会导致key_t数值的改变;2、shmget 获取共享内存对应的id,如果共享内存未创建,通过flag参
2021-10-22 18:46:12 1176
原创 C语言实现linux下的ls命令-a、-R、-l
实现功能:1、实现 -l 、-a、-R 三个选项,输出样式,请参照系统的 ls 命令2. ⽀持传⼊多个参数4. 对于输出,⽂件名按照字典序排序。5. 输出对⽬录和可执⾏⽂件带颜⾊实现基础1、4个系统调用,stat,opendir,readdir,closedir;2、stat查看文件信息,读取文件inode,然后将inode中的各种文件属性填入一个struct stat结构体传出给调用者,stat需要根据传入的文件路径找到inode;3、opendir用于打开一个目录,返回DIR指针代表此目
2021-10-16 17:31:15 1291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人