我在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));
}
此时,errno
为22
,我看到Invalid argument
。为什么?或者 - 如何找出原因?
答案 0 :(得分:4)
如man realpath
中所述,glibc
以下的path
版本会出现此行为:
错误
............
EINVAL -NULL
是resolved_path
。 (在2.3之前的glibc版本中,此错误是 如果NULL
为read.zoo
,也会返回。)