How to use pseudo-terminals in Linux with C?

c, linux, pty

Solution

Advanced Programming in the Unix Environment, 2nd Edition has a superb chapter on the pseudo-terminal layer available in Linux. The best part is the source code which contains a `pty` driver and very clearly demonstrates how to use the `pty` interfaces. (The `pty` program it builds is useful in its own right if you want to drive a terminal-only program programmatically but don't wish to use `expect(1)`.)

Problem

I'm trying to figure out how to use pseudo-terminal's in linux, essentially I want to create a telnetd clone, something I mentioned in an earlier question. I understand the concept of master and slave terminal, and I have a basic grasp on how to use syscalls in C. My question concerns the next step after opening a slave / master file descriptor. How to I launch getty in the slave? Are there any good resources on the net for using the forkpty(), openpty(),or another API? Some examples in C would help. This was a very similar question, but no one really provided any examples.

Original source

Related problems