Annotation of researchv9/cmd/tty.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Type tty name
                      3:  */
                      4: #include <sys/types.h>
                      5: #include <sys/stat.h>
                      6: 
                      7: char   *ttyname();
                      8: char   *Xttyname();
                      9: int sts;
                     10: 
                     11: main(argc, argv)
                     12: char **argv;
                     13: {
                     14:        register char *p;
                     15: 
                     16:        p = Xttyname(0);
                     17:        if (!(argc==2 && strcmp(argv[1], "-s") == 0))
                     18:                printf("%s\n", (p? p: "not a tty"));
                     19:        exit(sts);
                     20: }
                     21: 
                     22: char *
                     23: Xttyname(fd)
                     24: int fd;
                     25: {
                     26:        struct stat st;
                     27:        static char buf[20];
                     28:        char *p;
                     29: 
                     30:        sts = 0;
                     31:        if ((p = ttyname(fd)) != NULL)
                     32:                return (p);
                     33:        sts = 1;
                     34:        if (fstat(fd, &st) < 0)
                     35:                return (NULL);
                     36:        if (st.st_nlink != 0)   /* hack -- is it a pipe? */
                     37:                return (NULL);
                     38:        sts = 2;
                     39:        sprintf(buf, "nameless pipe/p%04x", st.st_ino);
                     40:        return (buf);
                     41: }

unix.superglobalmegacorp.com

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