%20%E8%BF%9B%E8%A1%8C%E8%B7%AF%E5%BE%84%E8%A7%A3%E6%9E%90%E6%9C%89%E4%BB%80%E4%B9%88%E7%BC%BA%E7%82%B9%E5%90%97%EF%BC%9F.png)
的手册页openat(2)
描述了它与 相比的很多优点open(2)
,但似乎没有包含任何缺点。
手动连接 C 中的路径可能会很痛苦(假设不想/无法将大部分分配逻辑卸载到asprintf(3)
,不幸的是这不是 POSIX 的一部分),所以我正在考虑获取一个文件描述符一个基本目录,并使用它来访问相对于该目录的文件openat(2)
。
这种方法有什么缺点吗?
答案1
有一个缺点:openat
以这种方式使用需要额外的文件描述符。
据我所知,这是唯一的一个(在我看来,这是一个次要的)。