-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
之间的通信“层”还是存在其他差异?