| Next | Welcome to my ~/bin | 93 | 
printd now runs printlp
(remember printlp is the program that copies the file to /dev/lp)
         if ($pid = fork()) {               # parent
           wait;
           handle_printlp_result($? >> 8) if $? != 0;
         } elsif (defined $pid) {    # child
           open STDIN, "< &=FILE" or exit 8;
           close FILE;
           close STDOUT;
           print STDERR "exec-ing $CONF{printlp}, $CONF{printer}\n" 
               if $CONF{debug_printd};
           exec $CONF{printlp}, $CONF{printer};
           exit 9;
         } else {                    # fork error
           log_error("Couldn't fork for $CONF{printlp}: $!");
         }
When the wait returns, printlp has finished printing the file
So printd removes it
         until (unlink $head) {
           log_error("Couldn't unlink spool file $head: $!!!");
           sleep 10;
         }
         unlink $CONF{curfile};
       }
     }
| Next | Menu | ![]()  | 
    Copyright © 2005 M. J. Dominus |