On Wed, Mar 24, 2010 at 01:16:28AM +0100, ????? ???????????? wrote:
> Yes, I was looking for the SUS API to create a pty master/slave pair, i.e.
> int fd_master, fd_slave;
> char *slave; ...
> fd_master = open("/dev/ptmx", O_RDWR);
> grantpt(fd_master);
> unlockpt(fd_master);
> slave = ptsname(fd_master);
> fd_slave = open(slave, O_RDWR);
>
> Now when I created the master, how to I pass the slave to a shell?
> Just dup(fd_slave) for stdin, stdout, stderr and pass it to
> fork()/exec()? Or do I have to use open()? Or just open once and pass
> the same fd for stdin, stdout, stderr to the shell?
>

you probably want to do the dup() after the fork and before the exec().
having the same fd for stdin, stdou, and stderr sounds right.

ed

> Olga
>
> On Wed, Mar 24, 2010 at 1:10 AM, Edward Pilatowicz
> <edward.pilatowicz at sun.com> wrote:
> > On Wed, Mar 24, 2010 at 12:57:40AM +0100, ????? ???????????? wrote:
> >> I am looking for an example for the user land pty/pseudo-terminal API
> >> to implement custom master/slaves (without setid). Does anyone have
> >> pointers?
> >>
> >
> > i'm not totally sure i understand the question, but it sounds like your
> > asking for pointers to the open("/dev/ptmx"), grantpt(3c), ptsname(3C),
> > unlockpt(3C), posix interfaces.
> >
> > ed
> >
>
>
>
> --
>       ,   _                                    _   ,
>      { \/`o;====-    Olga Kryzhanovska   -====;o`\/ }
> .----'-/`-/     olga.kryzhanovska at gmail.com   \-`\-'----.
>  `'-..-| /     Solaris/BSD//C/C++ programmer   \ |-..-'`
>       /\/\                                     /\/\
>       `--`                                      `--`

Reply via email to