|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/260930a3d244c.html, оценка из 5, голосов 10
|