C 我的环境中的realpath()不';你不喜欢NULL作为第二个参数吗?
我在linux机器上,C 我的环境中的realpath()不';你不喜欢NULL作为第二个参数吗?,c,linux,realpath,C,Linux,Realpath,我在linux机器上,/proc/self/exe似乎受到支持: ls-l/proc/self/exe显示在我运行命令时它链接到了/usr/bin/ls realpath/proc/self/exe按预期打印出/usr/bin/realpath 两个命令都以状态0退出 但是: 此时,errno是22,我看到参数无效。为什么?或者——如何找出原因?这种行为会发生在glibc2.3以下版本上,如中所述: 错误 ……… EINVAL-路径为空。(在2.3之前的glibc版本中,此错误为 如果res
/proc/self/exe
似乎受到支持:
显示在我运行命令时它链接到了ls-l/proc/self/exe
/usr/bin/ls
按预期打印出realpath/proc/self/exe
/usr/bin/realpath
- 两个命令都以状态
0退出
此时,
errno
是22
,我看到参数无效。为什么?或者——如何找出原因?这种行为会发生在glibc
2.3以下版本上,如中所述:
错误
………
EINVAL-路径
为空
。(在2.3之前的glibc版本中,此错误为
如果resolved_path
为NULL
,也会返回
您的glibc
版本是什么?ldd--version
说ldd(GNU-libc)2.20
那么,您应该检查您的glibc包版本(它是哪个版本?)。但是2.2比2.3低,所以我的答案是正确的。
if (NULL == realpath("/proc/self/exe", NULL))
{
printf("this prints unexpectedly, %s\n", strerror(errno));
}