2017-07-28 46 views
-3

使用管道通过TTY,PTY或execv()运行shell(例如,sh)有什么区别?使用管道通过TTY,PTY或execv()运行shell(例如sh)有什么区别?

我想知道是什么调用壳之间的差异,例如,通过sh使用execv()和管道为标准输入/输出一个TTY(终端)或PTY(伪终端),或从C-程序/标准错误?

特别是,我对TTY/PTY和C程序之间的差异感兴趣,因为TTY和PTY应该表现相同?

通过TTY/PTY调用sh,则该(伪)终端在发送之前解释/转换输入sh。同样,它将sh的输出回显到终端屏幕?这是(伪)终端的标准输出吗?

TTY/PTY和C程序之间的唯一区别是TTY/PTY充当过程发送/接收数据到sh之间的通信“层”还是存在其他差异?

回答

相关问题