LINUX.ORG.RU

Strace показывает неполный путь к файлу


0

1

root@desktop:~# strace -s 1120 -a 110 cp 1 /tmp/23344

Сисколом открывается файл «1».

open(«1», O_RDONLY). Но как ядро узнало, что он находится в моём домашнем каталоге? В вызове open этого же нигде не указано? Если вместо cp 1, указать cp ~/1 то bash преобразует путь и в параметрах open будет виден путь полностью

stat("/tmp/123456", {st_mode=S_IFREG|0644, st_size=0, ...})                     = 0
stat("1", {st_mode=S_IFREG|0644, st_size=0, ...})                               = 0
stat("/tmp/123456", {st_mode=S_IFREG|0644, st_size=0, ...})                     = 0
open("1", O_RDONLY)                                                             = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...})                                = 0
open("/tmp/123456", O_WRONLY|O_TRUNC)                                           = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...})                                = 0
read(3, "", 32768)                                                              = 0
close(4)                                                                        = 0
close(3)                                                                        = 0
А ещё, что значат три точки в третьем параметре fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) ? Спасибо.


Но как ядро узнало, что он находится в моём домашнем каталоге?

man 7 path_resolution

Относительные пути смотрятся в текущем каталоге процесса.

что значат три точки в третьем параметре fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) ?

Опущение подробностей. Добавь -v и получишь полную картину, например так:

$ strace -fvtTq -s10000 cp 1 2
...
24673 11:48:42 fstat(3, {st_dev=makedev(8, 1), st_ino=6422538, st_mode=S_IFREG|0644, st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=0, st_size=0, st_atime=2013/05/07-11:48:24, st_mtime=2013/05/07-11:48:24, st_ctime=2013/05/07-11:48:24}) = 0 <0.000013>
gorilych ★★
()
Последнее исправление: gorilych (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.