Well we're now 3 days later and no one pointed out a good reason :-) ----- Original Message ----- From: "Wez Furlong" <[EMAIL PROTECTED]> To: "Bernard Fouché" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Friday, April 02, 2004 12:06 PM Subject: Re: [PHP-DEV] CLI: constants STDIN, STDOUT & STDERR do not point to df 0, 1 & 2
> The dup() is there "just-in-case" something breaks during PHP shutdown. > I don't remember now exactly what the potential problem(s) might have > been, so perhaps the dup is overly cautious. > > So, I don't have a problem eliminating it, unless someone points out > a good reason to keep it :-) > > --Wez. > > ----- Original Message ----- > From: "Bernard Fouché" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Friday, April 02, 2004 10:24 AM > Subject: [PHP-DEV] CLI: constants STDIN, STDOUT & STDERR do not point to df > 0, 1 & 2 > > > > Hello. > > > > I'm trying to run a php script from xinetd (Fedora Linux). I need to close > > stdin, stdout & stderr since I want to close > > the socket established with the caller process (I have a long processing > to > > do locally, I need to release a remote > > resource & closing the connection is the only way I can do it). > > > > I've tried : > > > > fclose(STDIN); fclose(STDOUT); fclose(STDERR); > > > > It does not work, the socket is still up & running. > > > > When I run strace(1), I see that I'm closing fds 4, 5 & 6 (fd 3 is the fd > of > > the script being read) and not > > fd 0, 1 & 2. > > > > It seems that CLI PHP calls dup(2) to get duplicates of fd 0, 1 & 2 and so > > these 3 fds are totally > > unreachable from the script itself. I'm not used to php source code, but I > > think that the problem > > comes from getting constants STDIN, STDOUT & STDERR thru filter code > > generation used > > by "php://stdin" etc. and no provision is done for the first calls: a > dup(2) > > is automatically used. > > > > So constants STDIN, STDOUT & STDERR are not pointing to the correct fd's, > > but dup's. > > > > Can this be fixed or should I consider using another solution? (coding my > > script in C ;-( ) > > > > Regards, > > > > Bernard > > > > -- > > PHP Internals - PHP Runtime Development Mailing List > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php