linux中函数basename的隐式声明

时间:2011-08-17 12:37:42

标签: c warnings

我在我的代码中使用basename()函数。 我在哪里

#include <unistd.h>

当我用-Wall标志编译该代码时,它显示

警告

warning: implicit declaration of function ‘basename’

如果我在我的代码中写下声明

char * basename (const char *fname);

然后它没有显示警告

为什么会发生这种情况。?

2 个答案:

答案 0 :(得分:5)

您需要加入<libgen.h>

The standard表示它位于libgen.hkernel.org也是如此。

答案 1 :(得分:4)

如果您查看man的{​​{1}}页面:

basename

您会看到需要包含man 3 basename 来获取libgen.h(和类似函数basename)的原型:

dirname