Clang / LLVM和GCC都显示此警告。我知道必须包含标题才能使用许多函数,但stdio.h
包含在文件的顶部。我在同一个标题中使用了其他函数(例如setbuf()
),这些函数运行正常。删除标题包括导致错误和警告被抛出这些其他函数,如预期的那样。
我使用clang -MD -MF
来显示包含的头文件,并选中/usr/include/stdio.h
,其中包含setlinebuf()
的原型。我在unix.h
找到了一个在线参考,但这似乎不存在于我的系统中。
我正在使用Lubuntu 16.10 x86_64,Clang 3.8.1。
View source:包含在第1行,功能使用在第32行。
答案 0 :(得分:4)
在之前加入此,包括stdio.h
:
#define _BSD_SOURCE
setlinebuf()
不是标准C函数,因此默认情况下可能不会包含在stdio.h
中。
但请注意,自{glidc 2.20}以来,_BSD_SOURCE
已被弃用,并被_DEFAULT_SOURCE
取代。