-  The business with reading the child's output is not so hot.  What if
   the child's output is more than 256, which is the size of the statically
   declared result buffer?  Closing that pipe with data still in it will
   likely not free the child process and it's associated resources like
   open files and network sockets.  Worse yet, the close() may block and
   hang apache.  The 256 limit is fine, but you need to reap the child in a
   more robust manner.

  something like:
   char buf[512];
   while (0 < read (fd[1], buf, sizeof(buf)));
     close(fd[1]);


- More robust error reporting out of the exec()
  too.  Catch the status out of waitpid().


- Rename argv to something else.

- The fork/exec should be its own function.
