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


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       23 Mar 2001  11:55:57
 To : netch@segfault.kiev.ua
 Subject : Re: broken fifos
 -------------------------------------------------------------------------------- 
 
 >EG> Ставил screen из свежих портов под FreeBSD 3.5-STABLE.
 >EG> Заметил, что его configure говорит:
 >EG> checking fifos
 >EG> - your fifos are usable
 >EG> checking for broken fifo implementation
 >EG> - you have a broken implementation
 >EG> Кто-нибудь в курсе, в чем они broken?
 >
 >А не пофиг? Сокетами лучше ;)
 >configure.in смотрели?
 
 AC_CHECKING(for broken fifo implementation)
 AC_TRY_RUN([
 #include <sys/types.h>
 #include <fcntl.h>
 #include <sys/time.h>
 #include <sys/stat.h>
 
 #ifndef O_NONBLOCK
 #define O_NONBLOCK O_NDELAY
 #endif
 #ifndef S_IFIFO
 #define S_IFIFO 0010000
 #endif
 
 char *fin = "/tmp/conftest$$";
 
 main()
 {
   struct timeval tv;
   int r, x;
 
 #ifdef POSIX
   if (mkfifo(fin, 0600))
 #else
   if (mknod(fin, S_IFIFO|0600, 0))
 #endif
     exit(1);
   close(0);
   if (open(fin, O_RDONLY|O_NONBLOCK))
     exit(1);
   r = 1;
   tv.tv_sec = 1;
   tv.tv_usec = 0;
   if (select(1, &r, 0, 0, &tv))
     exit(1);
   exit(0);
 }
 ], AC_NOTE(- your implementation is ok), 
 AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1)
 
 Если собрать без -DPOSIX, mknod выпадает по EINVAL.
 Если с -DPOSIX, select() возвращает 1 и тест тоже выпадает.
 И что отсюда следует?
 
 Eugene
 
 -- 
 "Люди забыли эту истину," - сказал Лис, - "но ты не забывай"
 --- slrn/0.9.6.2 (FreeBSD)
  * Origin: SVZ-Service (2:5006/1@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 Re: broken fifos   Eugene Grosbein   23 Mar 2001 11:55:57 
 broken fifos   Lev Serebryakov   23 Mar 2001 12:44:19 
Архивное /ru.unix.bsd/260930a3d244c.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional