在C源代码中使用GNU版本的basename()和dirname()

在C源代码中使用GNU版本的basename()和dirname(),第1张

概述如何使用basename()和dirname()的GNU C库版本? 如果你 #include <libgen.h> 对于dirname 您已经获得了POSIX,而不是GNU版本的basename(). (即使你 #define _GNU_SOURCE 据我所知,在C中没有条件导入.是否有gcc特定技巧? 只需自己编写并给它一个不同于basename的名称.这种GNU坚持创建可以用1-3行编写的标 如何使用basename()和dirname()的GNU C库版本?

如果你

#include <libgen.h>

对于dirname
您已经获得了POSIX,而不是GNU版本的basename(). (即使你

#define _GNU_SOURCE

据我所知,在C中没有条件导入.是否有gcc特定技巧?

解决方法 只需自己编写并给它一个不同于basename的名称.这种GNU坚持创建可以用1-3行编写的标准函数的替代不符合版本是完全蹩脚的.
char *gnu_basename(char *path){    char *base = strrchr(path,'/');    return base ? base+1 : path;}

这样,您的程序也将更加便携.

总结

以上是内存溢出为你收集整理的在C源代码中使用GNU版本的basename()和dirname()全部内容,希望文章能够帮你解决在C源代码中使用GNU版本的basename()和dirname()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1237570.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存