21xrx.com
2024-05-20 10:02:10 Monday
登录
文章检索 我的文章 写文章
Linux C++:获取当前执行文件的路径
2023-07-10 12:04:46 深夜i     --     --
Linux C++ 路径 获取 执行文件

在Linux C++编程中,获取当前执行文件的路径是一个常见的需求。在Linux系统中,每个进程都有一个唯一的进程ID(PID),而每个进程都会有一个相应的进程目录(/proc/[PID])。在这个进程目录中,有一个文件叫做“exe”,它是一个符号链接,指向当前进程所执行的可执行文件。

有了这个思路,我们就可以在C++程序中通过读取这个“exe”文件,获取当前执行文件的路径了。下面是具体的代码实现:


#include <unistd.h>

#include <iostream>

using namespace std;

int main() {

  constexpr int bufsize = 512;

  char buf[bufsize];

  int n = readlink("/proc/self/exe", buf, bufsize);

  if (n == -1)

    cerr << "Error: failed to readlink /proc/self/exe" << endl;

    return -1;

  

  buf[n] = '\0';

  string filepath(buf);

  cout << "The filepath of the current executing file is: " << filepath << endl;

  return 0;

}

在上面的代码中,我们调用了readlink函数,将“/proc/self/exe”作为参数来读取这个符号链接,获取该链接指向的目标文件名。然后通过string构造函数和cout输出函数,把读取到的当前执行文件的路径输出出来。

需要注意的是,上面的代码是在Linux系统中编写的,如果在Windows系统中,代码需要进行相应的修改。不过基本思路是一样的,都是通过读取当前进程的相关信息,来获取当前执行文件的路径。

总之,获取当前执行文件的路径是一项非常实用的功能,在Linux C++编程中也是常见的需求。通过以上的代码实现,我们可以轻松地实现这个功能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复