的手册页openat(2)
描述了它与 相比的很多优点open(2)
,但似乎没有包含任何缺点。
手动连接 C 中的路径可能会很痛苦(假设不想/无法将大部分分配逻辑卸载到asprintf(3)
,不幸的是这不是 POSIX 的一部分),所以我正在考虑获取一个文件描述符一个基本目录,并使用它来访问相对于该目录的文件openat(2)
。
这种方法有什么缺点吗?
答案1
有一个缺点:openat
以这种方式使用需要额外的文件描述符。
据我所知,这是唯一的一个(在我看来,这是一个次要的)。