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>
