我知道如何通过getcwd
功能获取 CWD 的路径名,并且我使用strtok
功能获取< strong>目录名称(表示当前工作文件夹),是否可以通过简单查询或函数获取此内容?
答案 0 :(得分:4)
如果getcwd()
返回"/this/is/my/cwd"
而您只想"cwd"
,那么您可能希望对getcwd()
返回的内容使用basename()
。
#include <unistd.h> /* for getcwd() */
#include <libgen.h> /* for basename() */
[...]
char cwd[PATH_MAX] = "";
char * cwd_base = NULL;
if (NULL == getcwd(cwd, sizeof(cwd)))
{
perror("getcwd() failed");
}
else
{
cwd_base = basename(cwd);
}
if (NULL != cwd_base)
{
printf("The current working directory's base name is '%s'.\n", cwd_base);
}
答案 1 :(得分:3)
我会使用平台的目录分隔符strrchr()
,而不是strtok()
。
当然,“当前工作文件夹”通常需要是完整的绝对路径才能对文件系统访问有用。
答案 2 :(得分:0)
使用方便的任何东西:
对于这种特殊情况,所有这些都非常容易使用。如果您使用这么多,请将其分解为“辅助”子例程。