Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 mgetty: чудны дела твои...   Dennis Chikin   18 Dec 2005 13:39:37 
 Re: mgetty: чудны дела твои...   Eugene Grosbein   18 Dec 2005 18:11:15 
 mgetty: чудны дела твои...   Andrey Ostanovsky   18 Dec 2005 17:18:28 
 Re: mgetty: чудны дела твои...   Andrey Slusar   18 Dec 2005 20:06:48 
 mgetty: чудны дела твои...   Andrey Ostanovsky   18 Dec 2005 23:27:26 
 Re: mgetty: чудны дела твои...   Andrey Slusar   18 Dec 2005 23:46:28 
 mgetty: чудны дела твои...   Andrey Ostanovsky   22 Dec 2005 21:53:32 
 Re: mgetty: чудны дела твои...   Andrey Slusar   22 Dec 2005 21:42:39 
 Re: mgetty: чудны дела твои...   Valentin Nechayev   18 Dec 2005 15:19:02 
 mgetty: чудны дела твои...   Dennis Chikin   19 Dec 2005 10:17:06 
 Re: mgetty: чудны дела твои...   Valentin Nechayev   19 Dec 2005 12:42:06 
 mgetty: чудны дела твои...   Artem S. Ignatiev   18 Dec 2005 23:50:14 
 Re: mgetty: чудны дела твои...   Andrey Slusar   19 Dec 2005 02:13:40 
 Re: mgetty: чудны дела твои...   Valentin Nechayev   19 Dec 2005 15:26:25 
 Re: mgetty: чудны дела твои...   Valentin Nechayev   19 Dec 2005 15:39:38 
 mgetty: чудны дела твои...   Slawa Olhovchenkov   19 Dec 2005 15:53:00 
 Re: mgetty: чудны дела твои...   Valentin Nechayev   19 Dec 2005 16:19:14 
 mgetty: чудны дела твои...   Slawa Olhovchenkov   19 Dec 2005 16:44:32 
 Re: mgetty: чудны дела твои...   Kostik Belousov   20 Dec 2005 13:28:38 
Архивное /ru.unix.bsd/20342d7251fc2.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional