我在我的代码中使用basename()函数。 我在哪里
#include <unistd.h>
当我用-Wall标志编译该代码时,它显示
警告
warning: implicit declaration of function ‘basename’
如果我在我的代码中写下声明
char * basename (const char *fname);
然后它没有显示警告
为什么会发生这种情况。?
答案 0 :(得分:5)
您需要加入<libgen.h>
。
The standard表示它位于libgen.h
,kernel.org也是如此。
答案 1 :(得分:4)
如果您查看man
的{{1}}页面:
basename
您会看到需要包含man 3 basename
来获取libgen.h
(和类似函数basename
)的原型:
dirname