This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
More on pipes and O_NONBLOCK
- From: Kandziora Jan <jan dot kandziora at siemens dot com>
- To: "'cygwin at cygwin dot com'" <cygwin at cygwin dot com>
- Date: Fri, 2 Aug 2002 15:17:23 +0200
- Subject: More on pipes and O_NONBLOCK
Hi all,
It's been a while since I tried to use a cygwin pipe with nonblocking
operation.
I tried it with
if (fcntl(0,F_SETFL,O_NONBLOCK)<0)
{
perror("input stream can not be set to nonblocking mode");
exit(EXIT_FAILURE);
}
if (fcntl(1,F_SETFL,O_NONBLOCK)<0)
{
perror("output stream can not be set to nonblocking mode");
exit(EXIT_FAILURE);
}
It worked for reading from a piped stdin, but not for writing, although the
code
snipped above reported no error. Instead, the write on a piped stdout
blocked after
writing 12288 Bytes.
Now I read in a Win32 API Book that WIN32 APIs WriteFile() to any pipe is
always blocking. - Huh? -
If that's true, and Cygwin uses WIN32 API for Pipes, the second fcntl() has
to fail if the
descriptor belongs to a pipe, hasn't it? At least that behaviour should be
noted somewhere,
maybe in the "Implementation Details" section in the Cygwin API
Documentation.
What do you think?
Jan
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/