+ (void)close(0);
+
+ /* Reopen stdin descriptor on /dev/null */
+ if (open("/dev/null", O_RDWR) < 0) { /* stdin */
+ report(stderr, "cannot open /dev/null: %s\n", strerror(errno));
+ return(PS_IOERR);
+ }
+
+ if (logfile)
+ {
+ if ((logfd = open(logfile, O_CREAT|O_WRONLY|O_APPEND, 0666)) < 0) { /* stdout */
+ report(stderr, "cannot open %s: %s\n", logfile, strerror(errno));
+ return PS_IOERR;
+ }
+ } else
+ logfd = 0; /* else use /dev/null */
+