Annotation of 42BSD/usr.lib/libU77/perror_.c, revision 1.1.1.1

1.1       root        1: /*
                      2: char id_perror[] = "@(#)perror_.c      1.2";
                      3:  *
                      4:  * write a standard error message to the standard error output
                      5:  *
                      6:  * calling sequence:
                      7:  *     call perror(string)
                      8:  * where:
                      9:  *     string will be written preceeding the standard error message
                     10:  */
                     11: 
                     12: #include       <stdio.h>
                     13: #include       "../libI77/fiodefs.h"
                     14: #include       "../libI77/f_errno.h"
                     15: 
                     16: extern char *sys_errlist[];
                     17: extern int sys_nerr;
                     18: extern char *f_errlist[];
                     19: extern int f_nerr;
                     20: extern unit units[];
                     21: 
                     22: perror_(s, len)
                     23: char *s; long len;
                     24: {
                     25:        unit    *lu;
                     26:        char    buf[40];
                     27:        char    *mesg = s + len;
                     28: 
                     29:        while (len > 0 && *--mesg == ' ')
                     30:                len--;
                     31:        if (errno >=0 && errno < sys_nerr)
                     32:                mesg = sys_errlist[errno];
                     33:        else if (errno >= F_ER && errno < (F_ER + f_nerr))
                     34:                mesg = f_errlist[errno - F_ER];
                     35:        else
                     36:        {
                     37:                sprintf(buf, "%d: unknown error number", errno);
                     38:                mesg = buf;
                     39:        }
                     40:        lu = &units[STDERR];
                     41:        if (!lu->uwrt)
                     42:                nowwriting(lu);
                     43:        while (len-- > 0)
                     44:                putc(*s++, lu->ufd);
                     45:        fprintf(lu->ufd, ": %s\n", mesg);
                     46: }

unix.superglobalmegacorp.com

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