如何使用 basename()
和 dirname()
的 GNU C 库版本?
如果你
#include <libgen.h>
对于目录名
您已经获得了
basename()
的 POSIX 版本,而不是 GNU 版本。 (即使你#define _GNU_SOURCE
据我所知,C 中没有条件导入。是否有特定于 gcc 的技巧?
最佳答案
只需自己编写并给它一个与 basename
不同的名称。 GNU 坚持创建可以用 1-3 行编写的标准函数的替代非一致性版本,这完全是愚蠢的。
char *gnu_basename(char *path)
{
char *base = strrchr(path, '/');
return base ? base+1 : path;
}
这样,您的程序也将更加便携。
关于c - 在 C 源代码中使用 GNU 版本的 basename() 和 dirname(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5802191/