realpath() в моем env не любит NULL в качестве второго аргумента?
Я на linux box и /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
, Зачем? Или - как понять, почему?
1 ответ
Решение
Такое поведение будет происходить на glibc
версии ниже 2.3, как указано в man realpath
:
ОШИБКИ
............
EINVAL -path
являетсяNULL
, (В версиях glibc до 2.3 эта ошибка также возвращается, еслиresolved_path
являетсяNULL
.)