This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
Re: ExitProcess() with negative argument -> zero exit status from wait*()
- From: "Bob Byrnes" <byrnes at curl dot com>
- To: cygwin at cygwin dot com
- Date: Tue, 4 Jun 2002 13:25:23 -0400
- Subject: Re: ExitProcess() with negative argument -> zero exit status from wait*()
- Organization: Curl Corporation
On Jun 4, 6:27am, cgf-cygwin@cygwin.com (Christopher Faylor) wrote:
-- Subject: Re: ExitProcess() with negative argument -> zero exit status ...
>
> On Mon, Jun 03, 2002 at 11:01:51PM -0400, Bob Byrnes wrote:
> + If a process exits by calling ExitProcess() with a negative argument,
> + then cygwin returns a zero exit status to the calling process. This
> + seems wrong, and is different from the behavior of GetExitCodeProcess().
>
> Don't mix the Windows API with the UNIX api. You're asking for trouble.
>
> If you have to exit, use exit() or _exit().
>
> Either that, or go all of the way and don't use wait(). Start your process
> with CreateProcess and use WaitForSingleObject to wait for it.
>
-- End of excerpt from Christopher Faylor
This isn't really an option if I am running a native (non-cygwin) win32 app
from a cygwin program like "make" or a shell.
The native win32 app, which is not (necessarily) under my control, is going
to use ExitProcess(). I really don't want to rewrite all of the cygwin apps
to use WaitForSingleObject() instead of wait() ;-). I suppose I could
interpose a wrapper process that would spawn the win32 native app, then
do WaitForSingleObject() and finally call exit() to return the status to
the parent cygwin app, but that's a pain, and again it requires mixing
APIs, in the opposite direction.
I don't want to mix APIs. I just want a clean interface between processes.
Shouldn't cygwin at least try to interoperate with native win32 apps?
Failing to do so really limits its usefulness, IMO.
Bob Byrnes e-mail: byrnes@curl.com
Curl Corporation phone: 617-761-1200
400 Technology Square, 8th Floor fax: 617-761-1201
Cambridge, MA 02139
--
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/