2

我在一个 linux 机器上,/proc/self/exe似乎确实受支持:

  • ls -l /proc/self/exe表明它/usr/bin/ls在我运行命令时已链接到
  • realpath /proc/self/exe/usr/bin/realpath按预期打印
  • 两个命令都以状态退出0

但:

if (NULL == realpath("/proc/self/exe", NULL))
{
  printf("this prints unexpectedly, %s\n", strerror(errno));
}

在这一点上,errno22和我看到了Invalid argument。为什么?或者——如何找出原因?

4

1 回答 1

4

此行为将发生在glibc2.3 以下的版本上,如中所述man realpath

错误
............
EINVAL -pathNULL。(在 2.3 之前的 glibc 版本中,如果 is 也会返回此错误resolved_pathNULL

于 2017-01-20T20:33:25.593 回答