pwd
用于显示当前工作目录的完整路径; ls
可以列出文件和目录,配合选项可显示完整路径; find
能查找指定目录下符合条件的文件和目录并获取其路径; readlink
用于显示符号链接所指向的文件或目录的路径; realpath
可显示给定文件或目录的规范化绝对路径; which
用于显示指定命令的完整路径。
在Linux系统中,C语言获取路径的方法有多种,以下是几种常见的方式:
1、使用标准库函数
getcwd函数:用于获取当前工作目录,该函数的原型为char *getcwd(char *buf, size_t size);
。buf
是用于存储获取到的当前路径字符串的字符指针;size
是一个size_t
类型的整数,表示buf
的大小。
#include <stdio.h> #include <unistd.h> #define PATH_MAX 4096 int main() { char cwd[PATH_MAX]; if (getcwd(cwd, sizeof(cwd)) != NULL) { printf("Current working directory: %s ", cwd); } else { perror("getcwd() error"); } return 0; }
readlink函数:在Linux系统中,每个进程的/proc/self/exe
路径代表了当前可执行文件的路径,可以使用readlink
函数读取这个符号链接来获取可执行文件的路径。
#include <stdio.h> #include <unistd.h> #include <limits.h> int main() { char exePath[PATH_MAX]; ssize_t len = readlink("/proc/self/exe", exePath, sizeof(exePath) 1); if (len != -1) { exePath[len] = '