我在QNX平台上工作,我需要得到正在运行的可执行文件的路径。
我写了一小段代码,它总是返回-1:#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
extern int errno;
int main( int argc, char** argv )
{
char buf[512] = {0};
const char mypath[100] = "/proc/self/exefile";
errno = 0;
printf("The value readlink:: %d %sn",readlink(mypath, buf, 512 ), strerror( errno ));
return( 0 );
}
当我运行上面的代码时,我得到以下输出:
The value readlink:: -1 No such file or directory
我错过什么了吗?需要做什么才能在QNX中获得我当前的exe路径?
在QNX中/proc/self/exefile
不是符号链接;这是一个普通文件。
试题:
#include <fstream>
#include <iostream>
#include <string>
int main(int argc, char **argv) {
std::ifstream file("/proc/self/exefile");
std::string path;
std::getline(file, path);
std::cout << path << "n";
return 0;
}