【问题标题】:How are stdin and stdout connected on a ptty (like GNOME Terminal)stdin 和 stdout 如何在 ptty 上连接(如 GNOME 终端)
【发布时间】:2018-08-22 12:08:04
【问题描述】:

在编写简单的 c 程序并在终端应用程序中执行它们时,printf 会影响scanf,就像空白字符一样,因此似乎 stdout 和 stdin 是连接的。这怎么可能?

【问题讨论】:

  • 你能举个例子吗?
  • 稍后当我不使用手机打字时;->

标签: c stdout stdin


【解决方案1】:

如果标准输入和标准输出都连接到一个终端(同一个终端?),那么 C 库实现通常会在对标准输入开始输入操作之前安排刷新标准输出。它是 C 库的属性,而不是伪 tty 或 pty 的属性。 C standardPOSIXAFAICT 并没有强制要求这种行为,但它在类 Unix 系统上很常见,尤其是因为它会使程序看起来更具响应性。

缩写中通常只有一个t,主要是因为伪终端设备名称通常以pty开头。

【讨论】:

    猜你喜欢
    • 2010-09-20
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多