#include <iostream>
#include <climits>
#include "cstdlib"
#include "cstdio"
#include "cstring"
#include <unistd.h>
using namespace std;
int main(int argc, char *argv[]) {
const char* file_name = ".";
char abs_path_buff[PATH_MAX];
//获取文件路径, 填充到abs_path_buff
//realpath函数返回: null表示获取失败; 否则返回指向abs_path_buff的指针
if (realpath(file_name, abs_path_buff)) {
printf("%s %s\n", file_name, abs_path_buff);
} else {
printf("the file '%s' is not exist\n", file_name);
}
getcwd(abs_path_buff, 30);
cout << "paht:" << argv[0] << endl << abs_path_buff << endl << PATH_MAX
<< endl;
char dir[PATH_MAX] = { 0 };
int n = readlink("/proc/self/exe", dir, PATH_MAX);
printf("PATH_MAX: %d\n", PATH_MAX);
printf("readlink return: %d\n", n);
printf("dir: %s\n", dir);
int len = strlen(dir) - 1;
for (int j = len; j > 0; j--)
if (dir[j] == '/') {
dir[j + 1] = 0;
cout << "dir:" << dir << endl;
break;
}
return 0;
}
q@z-OptiPlex-9020:/$ /home/q/Desktop/a.out
. /
paht:/home/q/Desktop/a.out
/
4096
PATH_MAX: 4096
readlink return: 21
dir: /home/q/Desktop/a.out
dir:/home/q/Desktop/
q@z-OptiPlex-9020:/$

博客展示了在Linux环境下,可能与C程序相关的路径信息,包含当前路径、绝对路径等内容,如显示了/home/q/Desktop/a.out 等路径,还给出了PATH_MAX值及readlink返回值等。
359

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



