version 1.21, 2004/10/10 03:59:04 |
version 1.22, 2004/12/19 14:15:19 |
|
|
{ |
{ |
struct sigaction sa; |
struct sigaction sa; |
struct itimerval value; |
struct itimerval value; |
|
sigset_t blkalrm; |
char obuf[BUFSIZ]; |
char obuf[BUFSIZ]; |
time_t tvec; |
time_t tvec; |
ssize_t outcc = 0, cc, off; |
ssize_t outcc = 0, cc, off; |
|
|
tvec = time(NULL); |
tvec = time(NULL); |
(void)fprintf(fscript, "Script started on %s", ctime(&tvec)); |
(void)fprintf(fscript, "Script started on %s", ctime(&tvec)); |
|
|
|
sigemptyset(&blkalrm); |
|
sigaddset(&blkalrm, SIGALRM); |
bzero(&sa, sizeof sa); |
bzero(&sa, sizeof sa); |
sigemptyset(&sa.sa_mask); |
sigemptyset(&sa.sa_mask); |
sa.sa_handler = scriptflush; |
sa.sa_handler = scriptflush; |
|
|
continue; |
continue; |
if (cc <= 0) |
if (cc <= 0) |
break; |
break; |
|
sigprocmask(SIG_BLOCK, &blkalrm, NULL); |
for (off = 0; off < cc; ) { |
for (off = 0; off < cc; ) { |
ssize_t n = write(1, obuf + off, cc - off); |
ssize_t n = write(1, obuf + off, cc - off); |
if (n == 0) |
if (n == 0) |
|
|
} |
} |
(void)fwrite(obuf, 1, cc, fscript); |
(void)fwrite(obuf, 1, cc, fscript); |
outcc += cc; |
outcc += cc; |
|
sigprocmask(SIG_UNBLOCK, &blkalrm, NULL); |
} |
} |
done(0); |
done(0); |
} |
} |