strace relata caminho relativo incorreto?

0

Estou usando strace para relatar open e chdir chamadas do sistema e um fragmento de sua saída é:

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

Isso não faz sentido. Primeiro, nós entramos no diretório /etc , então o mesmo processo tenta abrir o arquivo relativo etc/fstab de lá. A chamada é bem-sucedida, mas não existe esse arquivo /etc/etc/fstab . Existe apenas o arquivo /etc/fstab .

Por que o Strace reporta etc/fstab e não /etc/fstab como deveria?

    
por user461984 24.06.2015 / 21:12

1 resposta

0

Bem ... aparentemente POSIX permite uma coisa como uma barra dupla em nomes de caminho. Isso significa, não o diretório raiz como se poderia pensar, mas depende da implementação. Eu acho que, neste caso, //etc é realmente o mesmo que / . Eu sei que isso é loucura, mas essa é a única coisa que posso fazer.

    
por 24.06.2015 / 23:57

Tags