readlink()在QNX上读取/proc/self/exefile时出错



我在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;
}

相关内容

  • 没有找到相关文章

最新更新