在C/C++中是否有办法找到当前执行程序的位置(完整路径)?
(问题argv[0]
在于它没有给出完整的路径.)
我希望在没有使用C++代码的root权限的情况下获得正在运行的进程(可执行文件)的完整路径.有人可以建议一种方法来实现这一目标.
在Linux平台上我可以通过以下方式来实现.
char exepath[1024] = {0};
char procid[1024] = {0};
char exelink[1024] = {0};
sprintf(procid, "%u", getpid());
strcpy(exelink, "/proc/");
strcat(exelink, procid);
strcat(exelink, "/exe");
readlink(exelink, exepath, sizeof(exepath));
Run Code Online (Sandbox Code Playgroud)
这里exepath为我们提供了可执行文件的完整路径.
同样对于Windows我们使用它
GetModuleFileName(NULL, exepath, sizeof(exepath)); /* get fullpath of the service */
Run Code Online (Sandbox Code Playgroud)
请帮助我在HP-UX上执行此操作,因为HP-UX中没有/ proc目录.