作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在运行 Ubuntu 16.04,内核版本为 4.8.0,glibc 版本为 2.23。当我使用标志 O_DIRECTORY
和 O_CREAT
执行 open
并且目录不存在时,将创建一个常规文件而不是目录。有哪些解决方法可以解决这种不直观的行为?
最佳答案
当我正确理解 open
的联机帮助页时,O_DIRECTORY
和 O_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/
我是一名优秀的程序员,十分优秀!