- return child_main (argc, argv);
- else
- return parent_main (argc, argv);
+ {
+ /* fd 2 might be closed, but fd 10 is the original stderr. */
+ myerr = fdopen (10, "w");
+ if (!myerr)
+ return 2;
+ return child_main (argc, argv);
+ }
+ /* We might close fd 2 later, so save it in fd 10. */
+ if (dup2 (STDERR_FILENO, 10) != 10
+ || (myerr = fdopen (10, "w")) == NULL)
+ return 2;
+ return parent_main (argc, argv);