什么是等同于解锁的' C99中的I / O功能?

时间:2014-10-30 08:22:55

标签: c io c99

当我使用--std=c99 GCC定义__STRICT_ANSI__时,当它打开时,BSD和System V功能不会启动。它暗示__USE_MISC__USE_POSIX是左未定义。

-- stdio.h --
...
#if defined __USE_POSIX || defined __USE_MISC
extern int getc_unlocked (FILE *__stream);
extern int getchar_unlocked (void);
#endif /* Use POSIX or MISC.  */
...

在结果中,省略了我想要使用的函数。我的问题是如何在C99中实现标准流上的I / O操作但没有锁定?

2 个答案:

答案 0 :(得分:3)

使用-std=gnu99代替-std=c99,它会按照您想要的方式运作。

答案 1 :(得分:0)

POSIX实际上说,所有可移植程序应该在包含任何标头之前,使用希望标头遵守的Posix标准版本定义宏_POSIX_C_SOURCE。因此:

#define _POSIX_C_SOURCE 200809L
#include <stdio.h>