Strace сообщает неверный относительный путь?
Я использую strace
сообщить open
а также chdir
Системные вызовы, а фрагмент его вывода:
6791 chdir("//etc") = 0
6791 open("etc/fstab", O_RDONLY) = 3
Это не имеет смысла. Сначала мы спускаемся в /etc
каталог, затем тот же процесс пытается открыть относительный файл etc/fstab
оттуда. Вызов завершается успешно, но такого файла нет /etc/etc/fstab
, Есть только файл /etc/fstab
,
Почему страйс сообщает etc/fstab
и не /etc/fstab
как это должно?
1 ответ
Ну... очевидно POSIX допускает такую вещь, как ведущий двойной слеш в именах путей. Это означает, что не корневой каталог, как можно было бы подумать, но он зависит от реализации. Я думаю, в этом случае //etc
действительно так же, как /
, Я знаю, что это безумие, но это единственное, что я могу придумать.