⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ptyfix2.txt

📁 神龙卡开发原代码
💻 TXT
字号:
--- demos/microwin/mterm.c.old Fri Dec  3 07:03:39 1999+++ demos/microwin/mterm.c Fri Dec  3 07:16:23 1999@@ -248,15 +248,16 @@  char * argv[2];  again:- sprintf(pty_name, "/dev/ptyp%d", n);- if ((tfd = open(pty_name, O_RDWR | O_NONBLOCK)) < 0) {- if ((errno == EBUSY) && (n < 3)) {- ++n;- goto again;- }- fprintf(stderr, "Can't create pty %s\n", pty_name);+        if ((tfd = getpt())<0) {+ fprintf(stderr, "Can't create master pty\n");  return -1;  }++        if (grantpt(tfd)) +                perror("failure");+        if (unlockpt(tfd)) +                perror("failure");+  signal(SIGCHLD, ptysignaled);  signal(SIGINT, ptysignaled);  if ((pid = fork()) == -1) {@@ -264,13 +265,13 @@  return -1;  }  if (!pid) {+                ptsname_r(tfd, pty_name, 12);  close(STDIN_FILENO);  close(STDOUT_FILENO);  close(STDERR_FILENO);  close(tfd);    setsid();- pty_name[5] = 't';  if ((tfd = open(pty_name, O_RDWR)) < 0) {  fprintf(stderr, "Child: Can't open pty %s\n", pty_name);  exit(1);--- demos/nanox/nterm.c.old Fri Dec  3 07:03:39 1999+++ demos/nanox/nterm.c Fri Dec  3 07:16:20 1999@@ -162,15 +162,16 @@  pid_t pid;  again:- sprintf(pty_name, "/dev/ptyp%d", n);- if ((tfd = open(pty_name, O_RDWR | O_NONBLOCK)) < 0) {- if ((errno == EBUSY || errno == EIO) && n < 10) {- n++;- goto again;- }- fprintf(stderr, "Can't create pty %s\n", pty_name);+        if ((tfd = getpt())<0) {+ fprintf(stderr, "Can't create master pty\n");  return -1;  }++        if (grantpt(tfd)) +                perror("failure");+        if (unlockpt(tfd)) +                perror("failure");+  signal(SIGCHLD, sigchild);  signal(SIGINT, sigchild);  if ((pid = fork()) == -1) {@@ -178,13 +179,13 @@  return -1;  }  if (!pid) {+                ptsname_r(tfd, pty_name, 12);  close(STDIN_FILENO);  close(STDOUT_FILENO);  close(STDERR_FILENO);  close(tfd);    setsid();- pty_name[5] = 't';  if ((tfd = open(pty_name, O_RDWR)) < 0) {  fprintf(stderr, "Child: Can't open pty %s\n", pty_name);  exit(1);-- 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -