|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valentin Nechayev 2:5020/400 19 Dec 2005 15:26:25 To : Dennis Chikin Subject : Re: mgetty: чудны дела твои... -------------------------------------------------------------------------------- >>> Dennis Chikin wrote: DC> fd = open(devname, O_RDWR | O_NDELAY | O_NOCTTY ); 6.0-release. Прицепил в ttys скрипт: #!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ( date; fstat -p $$ ) >>/tmp/ttyd0.dbg exec ktrace -f /tmp/ttyd0.tr -a /usr/local/sbin/mgetty Смотрю в /tmp/ttyd0.dbg: Mon Dec 19 13:02:37 EET 2005 USER CMD PID FD MOUNT INUM MODE SZ|DV R/W root sh 62011 root / 2 drwxr-xr-x 512 r root sh 62011 wd / 2 drwxr-xr-x 512 r root sh 62011 text / 141 -r-xr-xr-x 113940 r root sh 62011 10 /usr/local 144349 -rwxr-xr-x 205 r Вывод: при запуске из init'а не открыт ни один дескриптор. (10-й в sh - это исполняемый тут скрипт /usr/local/sbin/ttyd0) Смотрю что делает mgetty: 61915 mgetty CALL open(0x2807ac39,0,0) 61915 mgetty NAMI "/var/run/ld-elf.so.hints" 61915 mgetty RET open 1 Это первый сработавший open(). Hулевой дескриптор свободен. Hо возвращается 1. Хм... Через некоторое количество открытий/закрытий файлов приходим вот сюда: 61915 mgetty CALL open(0xbfbfea80,0x8006,0) 61915 mgetty NAMI "/dev/ttyd0" 61915 mgetty RET open 1 61915 mgetty CALL fcntl(0x1,0x4,0x2) 61915 mgetty RET fcntl 0 61915 mgetty CALL close(0) 61915 mgetty RET close -1 errno 9 Bad file descriptor 61915 mgetty CALL dup(0x1) 61915 mgetty RET dup 2 То есть в данном случае дескриптор 0 в какой-то странной позе - не занят, но и не свободен? По ману open() не обязан возвращать минимальный дескриптор из свободных, но по Posix - обязан. Проверяю на обычной программе. Повторить не получается. 62261 t CALL close(0) 62261 t RET close 0 62261 t CALL dup(0x2) 62261 t RET dup 0 это "обычная программа" (в которой только close() и dup()) Хм, пока объяснения нет... -netch- --- ifmail v.2.15dev5.3 * Origin: Dark side of the coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/20342d7251fc2.html, оценка из 5, голосов 10
|