commit e642beb5221e7dd00ff2b0e36b261f6722631116
parent 3ad24e4036fef2cbc71c421f5808bc02a0738a04
Author: rsc <devnull@localhost>
Date: Tue, 25 Nov 2003 03:06:00 +0000
add sunos
Diffstat:
1 file changed, 30 insertions(+), 0 deletions(-)
diff --git a/src/cmd/9term/SunOS.c b/src/cmd/9term/SunOS.c
@@ -0,0 +1,30 @@
+#include "9term.h"
+
+int
+getchildwd(int pid, char *wdir, int bufn)
+{
+ char path[256];
+ char cwd[256];
+
+ if(getcwd(cwd, sizeof cwd) < 0)
+ return -1;
+ snprint(path, sizeof path, "/proc/%d/cwd", pid);
+ if(chdir(path) < 0)
+ return -1;
+ if(getcwd(wdir, bufn) < 0)
+ return -1;
+ chdir(cwd);
+ return 0;
+}
+
+int
+getpts(int fd[], char *slave)
+{
+ fd[1] = open("/dev/ptmx", ORDWR);
+ if ((grantpt(fd[1]) < 0) || (unlockpt(fd[1]) < 0))
+ return -1;
+ fchmod(fd[1], 0622);
+ strcpy(slave, ptsname(fd[1]));
+ fd[0] = open(slave, OREAD);
+ return 0;
+}