gpt4 book ai didi

c - 如何使用 fopen() 锁定文件?

转载 作者:IT王子 更新时间:2023-10-29 00:21:18 32 4
gpt4 key购买 nike

我想知道当我使用fopen(而不是open)打开文件时,是否有任何方法可以在Linux 中锁定和解锁文件?

基于 Stack Overflow 问题 C fopen vs open fopen 优于 open

如何通过创建和删除锁定文件来实现我自己的文件锁定(如果可能)?

最佳答案

我强烈反对 fopen 优于 open 的说法。由于符号链接(symbolic link)漏洞/竞争条件,在其他用户可写的目录中写入文件时,不可能安全地使用 fopen,因为没有 O_EXCL 选项。如果需要在 POSIX 系统上使用 stdio,最好使用 openfdopen 而不是直接调用 fopen

现在,至于锁定它取决于你想做什么。 POSIX 没有像 Windows 那样的强制锁定,但是如果您只是想确保您正在使用新文件而不是破坏现有文件或遵循符号链接(symbolic link),请使用 O_EXCLO_NOFOLLOW 选项,视情况而定。如果您想在初始打开之后进行协作锁定,请使用 fcntl 锁。

关于c - 如何使用 fopen() 锁定文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7573282/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com