This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: More on pipes and O_NONBLOCK


On Fri, Aug 02, 2002 at 03:17:23PM +0200, Kandziora Jan wrote:
>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?

I think that a patch would be gratefully accepted.

cgf

--
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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]