int main(int argc, char *argv)
{
char appPath[PATH_MAX];
char *cwd;
cwd = getcwd(NULL, NULL); //取得当前工作目录绝对路径名称
if (strlen(cwd) + strlen(argv[0]) + 1> PATH_MAX) //argv[0] 是当前运行的程序的相对路径名称(包括文件名称)
//检查完整路径长度是否超过分配的空间
{
printf("ERROR: APP PATH TOO LONG/n");
}
else
{
strcat(strcat(strcpy(appPath, cwd), "/"), argv[0]); //拼接成完整路径名称
printf("APP PATH: %s/n", appPath); //得到的路径名称中包括可执行文件的名称。
}
free(cwd);
}
下面函数从完整路径中取得纯路径:
char *extract_pathname(char *pathname, char *path)
{
char *p;
if (pathname == NULL || path == NULL) return NULL;
if ((p = strrchr(path, '/')) == NULL)
{
strcpy(pathname, "/0");
}
else
{
strncpy(pathname, path, p + 1 - path);
pathname[p + 1 - path] = '/0';
}
return pathname;
}
本文提供了一个C语言程序示例,展示了如何获取当前工作目录及程序的完整路径,并从中提取纯路径部分。通过字符串操作实现了路径的拼接和分解。
636

被折叠的 条评论
为什么被折叠?



