static char *sccsid
= "@(#)lpr.c 4.4 (Berkeley) 81/05/21";
* lpr -- on-line printer spooler
char tfname
[] = "/usr/spool/lpd/tfaXXXXX";
char cfname
[] = "/usr/spool/lpd/cfaXXXXX";
char lfname
[] = "/usr/spool/lpd/lfaXXXXX";
char dfname
[] = "/usr/spool/lpd/dfaXXXXX";
register char *arg
, *remote
;
if (signal(SIGINT
, SIG_IGN
) == SIG_DFL
)
if (signal(SIGQUIT
, SIG_IGN
) == SIG_DFL
)
if (signal(SIGHUP
, SIG_IGN
) == SIG_DFL
)
if (signal(SIGTERM
, SIG_IGN
) == SIG_DFL
)
remote
= "$ remote **,onl";
while (argc
>1 && (arg
= argv
[1])[0]=='-') {
* This may not work because the daemon runs as someone else, so don't bother
if(*arg == '/' && flag != '-') {
if(link(arg
, lfname
) < 0)
printf("Cannot open %s\n", arg
);
printf("Cannot remove %s\n", arg
);
f
= link(tfname
, dfname
);
printf("Cannot rename %s\n", dfname
);
execl("/usr/lib/lpd", "lpd", 0);
printf("Daemon doesn't exist\n");
while((i
= read(f
, buf
, BUFSIZ
)) > 0) {
/* Avoid premature trunction of files */
printf("Copy file is too large\n");
while((c
= *p2
++) != '\0') {
register char *b1p
, *pp
, *b2p
;
static char b1
[100], b2
[100];
if(getpw(getuid(), b1p
)) {
b1p
= "pdp::::m0000,m000:";
while(*b2p
++ = "$ ident "[n
++]);
while(--n
) while(*b1p
++ != ':');
while((*b2p
++ = *b1p
++) != ':');
while((c
= *b1p
++) != ':') {
printf("Cannot create %s\n", name
);
signal(SIGQUIT
, SIG_IGN
);
signal(SIGTERM
, SIG_IGN
);
while(tfname
[i
] != 'a') {
while(cfname
[i
] != 'a') {
while(lfname
[i
] != 'a') {
while(dfname
[i
] != 'a') {