|
|
1.1 ! root 1: #include <errno.h> ! 2: #include <fcntl.h> ! 3: ! 4: static char PtyName[32] = "/dev/ptyXY"; ! 5: static char TtyName[32] = "/dev/ttyXY"; ! 6: ! 7: int getpseudotty(m, s) ! 8: char *m, *s; ! 9: { ! 10: register char *l, *d; ! 11: int index, f; ! 12: ! 13: index = strlen(PtyName) - 2; ! 14: for (l = "pqrstuvwxyz"; *l; ++l) { ! 15: for (d = "0123456789abcdef"; *d; ++d) { ! 16: PtyName[index] = *l; ! 17: PtyName[index+1] = *d; ! 18: if ((f = open(PtyName, O_RDWR)) != -1) { ! 19: strcpy(m, PtyName); ! 20: TtyName[index] = *l; ! 21: TtyName[index+1] = *d; ! 22: strcpy(s, TtyName); ! 23: return f; ! 24: } else { ! 25: perror("script: opening master"); ! 26: if(errno == ENXIO) ! 27: break; ! 28: } ! 29: } ! 30: } ! 31: return -1; ! 32: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.