Annotation of researchv10no/cmd/odist/ape/eprintf.c, revision 1.1

1.1     ! root        1: #include <stdarg.h>
        !             2: #include <stdio.h>
        !             3: #include <time.h>
        !             4: #include <unistd.h>
        !             5: #include "dist.h"
        !             6: 
        !             7: char *prog;
        !             8: 
        !             9: void
        !            10: eprintf(char *fmt, ...)
        !            11: {
        !            12:        time_t now;
        !            13:        char mesg[MAXLINE];
        !            14:        va_list ap;
        !            15:        static int fd = -1;
        !            16: 
        !            17:        time(&now);
        !            18:        sprintf(mesg, "%s[%d %.24s]: ", prog, getpid(), ctime(&now));
        !            19:        va_start(ap, fmt);
        !            20:        vsprintf(mesg + strlen(mesg), fmt, ap);
        !            21:        strcat(mesg, "\n");
        !            22:        write(2, mesg, strlen(mesg));
        !            23:        if (fd < 0)
        !            24:                fd = open(SDIR "/log", 1);
        !            25:        lseek(fd, 0L, 2);       /* we really want O_APPEND mode, but... */
        !            26:        write(fd, mesg, strlen(mesg));
        !            27: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.