Strace сообщает неверный относительный путь?

302
user461984

Я использую straceдля отчета openи chdirсистемные вызовы, а фрагмент его вывода:

6791 chdir("//etc") = 0 6791 open("etc/fstab", O_RDONLY) = 3 

Это не имеет смысла. Сначала спускаемся в /etcкаталог, затем тот же процесс пытается etc/fstabоттуда открыть относительный файл . Вызов завершается успешно, но такого файла нет /etc/etc/fstab. Есть только файл /etc/fstab.

Почему Strace сообщает, etc/fstabа не /etc/fstabкак следует?

0

1 ответ на вопрос

0
user461984

Well... apparently POSIX allows such a thing as a leading double slash in path names. It means, not the root directory as one would think, but is implementation-dependent. I guess in this case //etc is really the same as /. I know this is crazy, but this is the only thing I can come up with.

Похожие вопросы