Annotation of researchv9/cmd/tty.c, revision 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.