in reply to launching another program but using the existing socket
When you exec another process it has access to any open
file-handles within your program whose system file desriptor
is within the value of $^F.
The system uses file numbers 0=STDIN, 1=STDOUT, 2=STDERR and anything else is higher.
To open using just the fileno, first discover the socket's using fileno($socket) or $socket->fileno and pass that to the execed program on command line or with environment variables.
Then use the open syntax open FOO, ">& $fileno"; or whatever it is in the open documentation, or use $fh = File::Handle->new_from_fd and $fh->fdopen with the fileno.
Alternativly follow nardo's advice because those filehandles are always inherited by an exec'ed process and that will make the client program compatible with inetd.
|
---|
Replies are listed 'Best First'. | |
---|---|
(tye)Re: launching another program but using the existing socket
by tye (Sage) on Jul 23, 2001 at 23:57 UTC |
In Section
Seekers of Perl Wisdom