in reply to running an executable from a cgi script

I don't know how many other things that your executable asks for on standard input, but if it's only this one file name, the following command will do what you need.

`echo "$file" | $prog`;

You can get rid of that fork, pipe, and pid stuff.

Update: Since I got downvoted, maybe I wasn't being clear enough here? I still think this is a valid answer to the OP's original question.

If a script expects input (in this case, a file name), you can pipe the input into the script. Take the following script as an example:

#!/usr/bin/perl -w use strict; my $in = <STDIN>; print $in; # END # Now test it > echo "Hello, world!" | ./ Hello, world! >

I think this is what the OP is looking for instead of his opening on pipes, etc.