#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
...
lstat(name, &st);
...
Run Code Online (Sandbox Code Playgroud)
我正在使用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
Run Code Online (Sandbox Code Playgroud)
这意味着您需要定义其中一个要使用的功能测试宏lstat(2).
因此,选择其中一个对您的代码有意义的功能测试宏,例如_BSD_SOURCE,并在源文件的最开始(在包含任何头文件之前)定义它,或者您可以在编译器命令行上定义它,例如作为-D_BSD_SOURCE对gcc.