gpt4 book ai didi

linux - 使用标志 DIRECTORY 和 O_CREAT 打开的不直观行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:46:06 24 4
gpt4 key购买 nike

我正在运行 Ubuntu 16.04,内核版本为 4.8.0,glibc 版本为 2.23。当我使用标志 O_DIRECTORYO_CREAT 执行 open 并且目录不存在时,将创建一个常规文件而不是目录。有哪些解决方法可以解决这种不直观的行为?

最佳答案

当我正确理解 open 的联机帮助页时,O_DIRECTORYO_CREAT 的组合不是预期的:

如果文件名未指定目录,

O_DIRECTORY 应该会失败。我在这里将“目录”解释为“现有目录”。

您可以先使用 mkdir。如果目录已经存在,mkdir 将返回一个错误代码。您只需忽略 mkdir 返回的值。然后使用 O_DIRECTORY 打开文件:

mkdir(the_file_name, your_desired_mode);
f = open(the_file_name, O_DIRECTORY);

关于linux - 使用标志 DIRECTORY 和 O_CREAT 打开的不直观行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45039603/

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