在C标准库中,是否有类似于`fcntl()`的函数?

时间:2018-08-31 01:13:21

标签: c linux

在Linux API中,fcntl()对于获取或设置文件描述符标志,文件状态标志和其他属性非常有用。

在C标准库中,有一个类似于fcntl()的函数,该函数可以获取或设置FILE对象的属性及其基础文件描述符标志,文件状态标志和其他属性。 ?

2 个答案:

答案 0 :(得分:3)

不。这是因为在ISO C标准中,基于FILE的处理是指定的最低级别的API。

甚至不必存在文件描述符(以及您提到的其他内容)。

如何“秘密地”处理它完全取决于实现,因此,如果要访问其特定信息,则必须恢复为针对特定类型的东西。

POSIX标准实际上规定了底层机制,许多C实现也支持POSIX,但这绝不是ISO C所要求的,这是一个真正的C标准:-)

答案 1 :(得分:2)

如果首先具有fcntl,则还应该具有其他两个功能,这些功能使您可以在裸文件描述符和FILE对象之间来回移动:filenofdopen 。这些功能都不是由ISO C指定的(因此它们不是 the 标准C库的一部分),但是它们都包含在POSIX标准中(定义了“ Unix的大部分含义” ”),因此,如果您拥有其中之一,则可以预期全部拥有这三个。标头fcntl.h也是该标准的一部分。