在 Curses 模式下,stdout 和 stderr 去哪里?

2024-01-03

当curses处于活动状态时,stdout和stderr去哪里?

import curses, sys

def test_streams():
    print "stdout"
    print >>sys.stderr, "stderr"

def curses_mode(stdscr):
    test_streams()

test_streams()
curses.wrapper(curses_mode)

实际输出是

stdout
stderr

Update0

预期输出是

stdout
stderr
stdout
stderr

进入然后退出诅咒模式,终端中显示的最终文本不会发生任何变化。


激活curses会保存终端文本屏幕的当前内容并清除所述屏幕;退出诅咒会恢复屏幕的内容(丢弃在诅咒本身统治期间放置在屏幕上的所有内容)。尝试使用您的代码的这个变体,您会更好地看到发生了什么:

import curses, sys, time

def test_streams(wot):
    print wot, "stdout"
    print >>sys.stderr, wot, "stderr"

def curses_mode(stdscr):
    test_streams("wrap")
    time.sleep(1.0)

test_streams("before")
curses.wrapper(curses_mode)
test_streams("after")

你会注意到wrap stderr在屏幕上显示一秒钟(在睡眠期间)——它会覆盖标准输出部分——然后它消失,您会在现在静止的屏幕上看到前后四行(您可以添加其他睡眠来跟踪甚至发生的情况)如果您关心的话,请提供更多详细信息)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Curses 模式下,stdout 和 stderr 去哪里? 的相关文章

随机推荐

  • Cloud Functions Puppeteer 无法打开浏览器

    我在 GCF 中的设置 install npm install save puppeteer来自项目云 shell 像这样编辑 package json dependencies puppeteer 19 2 2 粘贴代码来自媒体网站 ht
  • Julia:为图书馆建立 OOP 模型的最佳方法是什么

    我正在尝试创建一个图书馆 假设我有一个模型 其中有一个输出 输入和描述函数的方程 输入为 x 1 2 3 4 5 6 y 5 2 4 8 9 2 我把它放入一个函数中 returns y values function fit x a b
  • flutter firebase 推送通知图标

    I made an app and I implemented push notifications and it works but I ve tried to change the default icon with a image p
  • 在 python 中使用 meshlab 函数

    我是 3D 新手 我有一个点云 我想使用 python 库形成一个网格 但我可以使用网格实验室函数 这些函数是 过滤器 gt 点集 gt 计算点集的法线 和 过滤器 gt 重新划分网格 简化和重建 gt 曲面重建 Poission 有没有什
  • 在 Azure VM 中使用 Booksleeve Redis 客户端时出现 Redis 连接错误

    我最近开始在新的 Azure VM 上托管我的一个业余项目 该应用程序使用 Redis 作为内存缓存 在我的本地环境中一切都工作正常 但现在我已将代码移至 Azure 我发现 Booksleeve 出现了一些奇怪的异常 当应用程序第一次启动
  • Powershell:引号解析不一致/奇怪的行为?

    全部 我正在尝试使用 PowerShell 编译程序 但该命令的解析方式很奇怪 此命令在 cmd exe 中正确执行 dmd od bin of bin convHull exe I src src concSort d src fileP
  • 如何左对齐 SWT ToolItem 中的文本?

    我正在升级 RCP 应用程序以使用 Eclipse 4 2 1 我遇到的问题之一是工具栏中文本的对齐方式发生了变化 我可以使用以下片段重现该问题 该片段改编自标准SWT 片段 http git eclipse org c platform
  • 如何在Python中重新分配列表中的项目?

    我想在 Python 中重新分配列表中的每个项目 In 20 l 1 2 3 4 5 In 21 for i in l i i 1 但名单根本没有改变 In 22 l Out 22 1 2 3 4 5 我想知道为什么会这样 任何人都可以详细
  • 网络浏览器是否需要在客户端计算机上安装 IE

    我只是想知道是否有任何版本的 I E 部署使用 webbrowser 控件的应用程序时必须安装在客户端计算机上 目标 net 2 平台 Thanks 当您使用 添加 删除 Windows 组件 小程序来 删除 Internet Explor
  • (VB6) 逐行读取文本文件查找特定单词

    下午好 StackOverflow 我刚刚在这里注册 我已经使用这个网站很多年了 它似乎总是提供答案的网站 所以我决定参与其中 废话不多说 这是我的问题 我正在为 LAN 各方编写一个 API 我和一个团队每月都会使用该 API 来帮助解决
  • 了解汇编级别 ++i 和 i++ 之间的区别

    我知道这个问题的变体已经在这里被问过多次 但我并不是在问两者之间有什么区别 只是想要一些帮助来理解这两种形式背后的组装 我认为我的问题与whys比到what的差异 我正在阅读Prata 的 C Primer Plus在处理增量运算符的部分
  • C++ select() 不等待超时时间

    我正在尝试使用 select 函数来接受输入 但如果用户没有输入任何内容 则每 2 秒执行一次其他操作 下面的代码在第一次到达 select 时等待两秒 但是一旦打印出第一个 超时 消息 它就会快速继续打印 超时 而不等待 2 秒 基本上进
  • Celery 任务在多个队列中注册

    我在 Django 1 9 中使用 celery 和 RabbitMQ 服务器 我有四个不同的队列 我正在这四个队列之一中注册一个任务 问题是我的所有任务都注册在所有四个队列中 就像我有一个名为add并有四个队列 A B C 和 D 理想情
  • 根据C++模板类型调用不同的C函数

    我的问题如下 我有一个 C 库 其中包含每个函数的多个版本 具体取决于它们所使用的数据类型 例如 void add double a double b double c and void sadd float a float b float
  • 如何设置 QComboBox 宽度以适合最大的项目?

    我有一个QComboBox我充满了QString using comboBox gt addItem someString 当我启动 GUI 应用程序时 QComboBox始终为 70 即使最小的项目要大得多 如何动态设置a的宽度QComb
  • 当我浏览 http://localhost:8004/elmah.axd 时,它会生成 404 错误

    当我浏览时http localhost 8004 elmah axd它显示应用程序中发生的错误 但也会生成 404 错误 我该如何停止这个 404 错误 404错误的详细信息是 System Web HttpException 0x8000
  • Visual Studio 2010 条件引用

    我们这里有多个产品共享一些公共库 这些库是单独解决方案的一部分 因此它们可以由TFS独立构建 但问题是在开发过程中 必须修改公共库 将其编译为二进制文件 将其复制到公共位置 编译产品解决方案 为了避免这种情况 我想知道是否可以有条件引用 因
  • 查看控制器 EXTJS 4 中的参考

    我无法在控制器中获取组合框值 组合框视图的getter方法返回 function i return this constructor apply this arguments null 而不是查看对象实例 如果我使用 var combo t
  • 未找到 QWebView 库

    当我尝试添加QWebFrame 库 我找不到它 并且答复是没有这样的文件或目录 所以知道为什么这个库不存在 我按如下方式添加库 include
  • 在 Curses 模式下,stdout 和 stderr 去哪里?

    当curses处于活动状态时 stdout和stderr去哪里 import curses sys def test streams print stdout print gt gt sys stderr stderr def curses