linux c中有什么机制能让多条语句组成一个原子操作呢?
我的需求是:一个进程a在指定的文件夹下创建一个文件,然后往文件中添数据,直到数据写完为止。从创建文件到文件彻底写完不允许被打断。有另一个进程b在不停的读文件,文件在a写完之前不允许b读,因为某些原因我不能修改进程b,这个需求该怎么实现呢?这个应该不能使用flock()吧,因为在文件创建完成但还没有写入任何数据时也有可能被打断。。。 也不能使用信号量等机制吧?因为我不能修改进程b的任何东西。有好的意见吗?尽量给个例子吧? Linux C 原子操作 同步 进程
[解决办法]
1。写成中断处理程序,然后屏蔽所有中断,当然这也不是绝对的,毕竟系统中断你是屏蔽不了的。
但是也能达到一定的效果,可是lz写工作时间比较长,这部分工作一般都是放在中断下部分!
2。读写信号量那。