#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
...
lstat(name, &st);
...
我正在使用CodeBlocks编写C程序。其他所有包括工作正常。我在线检查了一下,lstat需要代码顶部列出的三个包含项,但是我仍然收到错误消息警告:尝试编译时隐式声明了函数“lstat”。我不知道怎么了。如果我需要包括任何其他信息以获取帮助,请说。
最佳答案
根据lstat(2)
:
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
lstat():
_BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
|| /* Since glibc 2.10: */ _POSIX_C_SOURCE >= 200112L
这意味着您需要定义这些功能测试宏之一才能使用
lstat(2)
。因此,请选择对代码有意义的那些功能测试宏之一,例如
_BSD_SOURCE
,并在源文件的开头(在包含任何头文件之前)对其进行定义,或者可以在编译器命令行上对其进行定义,例如-D_BSD_SOURCE
的gcc
。