Ubuntu下的 service 中的可执行程序可以使用相对路径或绝对路径来访问程序所在目录下的文件。
如果可执行程序在当前目录下,可以使用相对路径来访问:
```
./file.txt
```
如果可执行程序在其他目录下,可以使用相对路径或绝对路径来访问:
```
../path/to/file.txt
/home/user/path/to/file.txt
```
在程序中,可以使用以下函数获取可执行程序所在的目录:
```c++
#include <unistd.h>
#include <limits.h>
std::string get_executable_path()
{
char buf[PATH_MAX];
ssize_t len = readlink("/proc/self/exe", buf, sizeof(buf)-1);
if (len != -1)
{
buf[len] = '\0';
std::string path(buf);
return path.substr(0, path.find_last_of("/\\"));
}
else
{
return "";
}
}
```
然后,可以使用该函数返回的路径来访问程序所在目录下的文件。
联系客服