Date: Mon, 6 Sep 1999 10:57:50 -0400 (EDT) From: Zhihui Zhang <zzhang@cs.binghamton.edu> To: Alex Povolotsky <tarkhil@asteroid.svib.ru> Cc: stable@FreeBSD.ORG, hackers@FreeBSD.ORG Subject: Re: Problems with FIFO open in non-blocking mode? Message-ID: <Pine.GSO.3.96.990906105500.13356A-100000@sol.cs.binghamton.edu> In-Reply-To: <199909060547.JAA29146@shuttle.svib.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 6 Sep 1999, Alex Povolotsky wrote: > Hello! > > The following program > > #include <stdio.h> > #include <fcntl.h> > > main() { > int control; > if ((control = open("STATUS",O_WRONLY|O_NONBLOCK))<0) { > perror("Could not open STATUS "); > exit(1); > } > printf("STATUS ready\n"); > close(control); > return(0); > } > > fails to run (STATUS is pre-created FIFO file) with error "Device not > configured", which seems kinda odd for me. > > However, when FIFO is opened with O_RDWR and O_NONBLOCK, every attempt > to select(2) its handler for writing doesn't wait until someone opens > FIFO for reading, but instead FIFO is ready to write at every select. > > Is it a bug or a feature? > I answered a similar question some time ago. You can search the mailing list archive for this. Basically, you need to read the "Advanced Unix Programming Environment" by Stevens. I can not remember every details right now. The "device not configured" error is expected. -Zhihui To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.3.96.990906105500.13356A-100000>