发布网友 发布时间:2022-05-04 21:07
共1个回答
热心网友 时间:2022-06-25 21:58
在子进程内, 你写之前用的是 write_lock(), 当文件被锁住时,这个接口不会等在那里,而是直接返回-1 (errno 设置成EACCES 或 EAGAIN)。 而你的子进程又没有检查其返回值,所以就会继续执行下面的write,当然东西就写进去了。正确的做法是, 要么用 writew_lock 来等待文件锁被 unlock 后再写,或者检查 write_lock 的返回值,如果提示已经被锁住了,那么就不要做后面的写操作。