linux中函数basename的隐式声明

Jee*_*tel 2 c warnings

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

#include <unistd.h>
Run Code Online (Sandbox Code Playgroud)

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

以下警告

warning: implicit declaration of function ‘basename’
Run Code Online (Sandbox Code Playgroud)

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

char * basename (const char *fname);
Run Code Online (Sandbox Code Playgroud)

然后它没有显示警告

为什么会发生这种情况.

cni*_*tar 5

你需要包括<libgen.h>.

标准说它在libgen.h,kernel.org也这样做.