可以将flockfile函数用于进程

时间:2011-10-20 05:24:13

标签: c multithreading process

大家好我想问一个关于flockfile函数的问题我正在阅读描述并且知道它是在线程中使用的。但是我在做分叉意味着会有不同的进程而不是线程我可以使用flockfile和不同的进程吗会有什么区别吗?

由于

2 个答案:

答案 0 :(得分:3)

flockfile函数不会锁定文件,而是锁定进程用来访问文件的FILE数据结构。所以这是关于进程对文件的地址空间表示,而不一定是文件本身。

即使在同一个文件中打开了不同FILE的进程,即使您已通过{ 1}}。

要锁定文件本身,请查看FILEflockfile,但请注意,通过同一进程的不同线程访问文件的效果规则很复杂。

答案 1 :(得分:1)

这些功能只能在一个过程中使用。

来自POSIX docs

  

总之,与其他线程共享stdio流的线程可以使用flockfile()和funlockfile()来使单个线程执行的I / O序列保持捆绑。

该页面的其余部分讨论了线程之间的互斥问题。不同的进程将为文件流提供不同的输入/输出缓冲区,这种锁定实际上没有意义/有效。