Mailing-List: contact cygwin-help@sourceware.cygnus.com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe@sources.redhat.com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin@sources.redhat.com>
List-Help: <mailto:cygwin-help@sources.redhat.com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner@sources.redhat.com
Delivered-To: mailing list cygwin@sources.redhat.com
Date: Wed, 23 May 2001 19:25:40 -0400
From: Christopher Faylor <cgf@redhat.com>
To: cygwin@cygwin.com
Cc: nelson@reversion.ca
Subject: Re: cygwin_attach_handle_to_fd()
Message-ID: <20010523192540.A15862@redhat.com>
Reply-To: cygwin@cygwin.com
Mail-Followup-To: cygwin@cygwin.com, nelson@reversion.ca
References: <3B0C35D4.5B3849D0@reversion.ca>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.3.11i
In-Reply-To: <3B0C35D4.5B3849D0@reversion.ca>; from nelson@reversion.ca on Wed, May 23, 2001 at 04:12:36PM -0600

On Wed, May 23, 2001 at 04:12:36PM -0600, Craig Nelson wrote:
>Hi All, just looking for a bit more info on
>cygwin_attach_handle_to_fd(): the API references shows it as:
>
>----snip----
>extern "C" int cygwin_attach_handle_to_fd(char *name, int fd, HANDLE handle, int bin, int access);
>
>This function can be used to turn a Win32 "handle" into a posix-style
>file handle.  fd may be -1 to make cygwin allocate a handle; the actual
>handle is returned in all cases.
>
>----snip----
>
>But I'm wondering what kinds of values BIN, ACCESS, and NAME are expected to have.  In particular:
>
>    -Does NAME have to be a unique string?  if so, unique amongst each invocation of a cygwin process, etc.
>    -Should BIN be set to unix things like O_BINARY | O_RDONLY or win32 things like GENERIC_READ, etc.
>    -Should ACCESS be set to unix things like S_IRWXU or win32 things like FILE_SHARE_READ, etc.
>
>Any help on all the options for this function would be greatly appreciated.

From inspecting the code:
'name' is the name of the file or device.
'bin' is true if the file should be opened in binary mode, false for text mode.
'access' is a windows setting like 'GENERIC_READ' or 'GENERIC-WRITE'.

>Incase anybody is wondering why I'm needing this: The reason is, I'm
>using CreateProcess(), CreatePipe() and cygwin_attach_handle_to_fd() in
>order to start up a child process and redirect its STDIN, STDOUT, and
>STDERR and use it in my program.  It works great except the fd returned
>from attach_handle() appears to never get closed (and therfore read()
>blocks indefinately because it never gets an EOF).

It sounds like you're reinventing "popen" to me.

>I've tried setting BIN and ACCESS to constants shown above (without
>success), and I am wondering If there's something I've not set.  I'm
>running NT4sp6a with the latest cygwin-1.3.2 release.  please send a
>reply to nelson@reversion.ca (and the list, if desired)

Probably the best thing you could do is inspect the source code.  That's
what I just did.

cgf

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple

