Re: dup2() Problem
Re: dup2() Problem
- Subject: Re: dup2() Problem
- From: Terry Lambert <email@hidden>
- Date: Thu, 5 Jul 2007 20:04:04 -0700
You probably need to identify a cut-down test case, and then file a
bug via bug reporter.
You may also want to use fileno(stdout), instead of using
STDOUT_FILENO -- but you didn't provide a version number or any of the
other information you'd be required to submit a bug report, like a
compilable test case, so I can't tell if this would be necessary or not.
There are a bazillion things it could be (for example, the number of
open files you have could exceed the resource limits set on the child,
for one, or you could be attempting to dup an O_EXCL fd, etc. etc.),
but there's simply not enough information.
-- Terry
On Jul 5, 2007, at 7:46 PM, Norm Green wrote:
Yes. The open call is returning a positive int and stdout has not
been closed (it works fine in the parent process). Like I said,
this code is very old and has always worked correctly on other unixes.
Norm
-----Original Message-----
From: Justin C. Walker [mailto:email@hidden]
Sent: Thursday, July 05, 2007 6:57 PM
To: email@hidden list
Subject: Re: dup2() Problem
On Jul 5, 2007, at 18:10 , Norm Green wrote:
> Hi,
>
> I'm having a problem on Darwin i386 using dup2() in a child
> process. This is after a fork() call but before execve() call.
>
> After the fork I do:
>
> int logfd = open(logName, O_WRONLY|O_APPEND|O_CREAT, 0644);
> dup2(logfd, STDOUT_FILENO);
>
> The open() call succeeds but the dup2() call always fails with
> errno=9, which suggests one of the args is not an open fd. I'm
> sure I'm not closing either in my code.
I think errno == 9 suggests that one of the values is bad, not that
one of the file descriptors is closed. The man page implies that
'newd' may be open or closed before the dup2() call. Have you really
checked the value of each argument?
Justin
--
Justin C. Walker, Curmudgeon-At-Large
Institute for the Enhancement of the Director's Income
--------
When LuteFisk is outlawed,
Only outlaws will have LuteFisk
--------
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden