我的env中的realpath()不喜欢NULL作为第二个参数?

时间:2017-01-20 20:23:41

标签: c linux realpath

我在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。为什么?或者 - 如何找出原因?

1 个答案:

答案 0 :(得分:4)

man realpath中所述,glibc以下的path版本会出现此行为:

  

错误
  ............
         EINVAL - NULLresolved_path。 (在2.3之前的glibc版本中,此错误是                 如果NULLread.zoo,也会返回。)