dirname()
函数和 basename()
函数将一个路径名字符串分解成目录和文件名两部分。
#include <libgen.h> char *dirname(char *path); char *basename(char *path);点击复制复制失败已复制
例如,给定路径名为 /home/iric/code/prog.c
, dirname()
函数将返回字符串 /home/iric/code
,而 basename()
函数将返回字符串 prog.c
。
关于 dirname()
函数和 basename()
函数,请注意以下几点:
- 函数执行将忽略
path
中尾部的斜线字符。 - 如果
path
未包含斜线字符,那么dirname()
函数将返回字符串.
(点),而basename()
函数将返回path
。例如,当前目录下的文件不需要指定路径。 - 如果
path
仅由一个斜线字符组成,那么dirname()
函数和basename()
函数均返回字符串/
。将其应用于上述拼接规则,所创建的路径名字符串为///
,该路径名属于有效路径名。因为多个连续斜线字符相当于单个斜线字符,所以路径名///
就相当于路径名/
。 - 如果
path
为空指针或空字符串,那么dirname()
函数和basename()
函数均返回字符串.
(点)。