草庐IT

linux - 如何将 stdout、stderr 重新路由回/dev/tty

我只是通过ssh连接到某个远程服务器,发现我尝试在bash中运行的所有命令/进程的stdout和stderr都被重定向到某个地方。所以,我得到了以下问题如何检测:1)哪个文件stdout,stderr在Linux中被重新路由?和2)以及如何默认将stdout和stderr重新路由回/dev/tty?提前谢谢你。 最佳答案 一个真正应该执行您在(2)中要求的命令是exec>/dev/tty2>&1但我怀疑你对问题的分析不正确。查看ssh-v...的输出会很有用(其中...是您在原始ssh中输入的任何参数命令)。

linux - Less 从 stderr 获取键盘输入?

我正在查看“less”实用程序的代码,特别是它如何获取键盘输入。有趣的是,在ttyin.c的第80行,它设置了要读取的文件描述符:/**Try/dev/tty.*Ifthatdoesn'twork,usefiledescriptor2,*whichinUnixisusuallyattachedtothescreen,*butalsousuallyletsyoureadfromthekeyboard.*/#ifOS2/*The__open()systemcalltranslates"/dev/tty"to"con".*/tty=__open("/dev/tty",OPEN_READ);#

stdout - PHP CLI 不使用 stderr 来输出错误

我在MacOS中通过NSTask运行PHPCLI,但这个问题更多的是关于CLI本身。我正在监听stderr管道,但无论我尝试运行什么文件都没有输出:如果文件类型不是纯文本,stdout设置为?。如果文件是有错误的php脚本,错误消息仍会打印到stdout。有没有切换到解释器通过stderr来处理错误?除了解析stdout之外,我是否可以选择检测错误? 最佳答案 display_errorsdirective(可以在任何地方设置)可选地使用参数“stderr”,以便它向stderr而不是stdout报告错误或完全禁用错误输出。引用自P

c++ - 即使 stdout 和 stderr 被重定向,Unix 程序如何在屏幕上显示输出?

我在我的Ubuntu机器上运行一个程序(实际上是valgrind),并将stdout和stderr重定向到不同的文件。我惊讶地看到屏幕上出现一条短消息——这怎么可能?我怎么能自己在C++程序中做到这一点?编辑:这是我使用的命令和输出:$valgrind./myprogram>val.out2>val.err***stacksmashingdetected***:./myprogramterminatedEDIT2:多玩一点,结果是myprogram而不是valgrind导致了消息被打印,如下面的回答,看起来gcc堆栈粉碎检测代码正在打印到/dev/tty 最

node.js - 在 Mocha 测试期间静音 stdout 和 stderr

我首先要承认我可能正在做一些我不应该做的事情。不过既然我已经这么深了,那我倒也能明白为什么会这样了。我正在使用Mocha测试一些Node.js代码。此代码使用Winston日志库,它直接调用process.stdout.write()和process.stderr.write()(source)。它运作良好;我对这种行为没有任何提示。但是,当我对这段代码进行单元测试时,Mocha测试运行器的输出偶尔会穿插几行日志输出,这在一些记者看来很难看(dot、bdd)并且在其他(xunit)中完全无效。我想在不修改或继承Winston的情况下阻止此输出,并且如果可以避免,我想避免修改应用程序本身

node.js - node中的error,stderr,stdout有什么区别

我正在使用node.js并且想要处理错误消息。erro、stderr、stdout有什么区别?在编写shell时,我重定向了stderr并发现了有用的错误消息,它解决了问题。我也不清楚计算机具有哪种输出的概念。谁能全面解释一下?谢谢。 最佳答案 这实际上是一个有趣的问题。如果您像这样格式化问题的标题,您可能会得到更多答案——NodeJS在错误、标准错误和标准输出之间的区别。我不会重复stdout和stderr之间的区别,因为之前已经回答过了。但是,error和stderr之间的区别并不那么容易区分。Error是NodeJS创建的错误

Node.js 使用单独的 stdout 和 stderr 流以交互方式生成子进程

考虑以下C程序(test.c):#includeintmain(){printf("stringout1\n");fprintf(stderr,"stringerr1\n");getchar();printf("stringout2\n");fprintf(stderr,"stringerr2\n");fclose(stdout);}应该将一行打印到stdout,一行到stderr,然后等待用户输入,然后另一行到stdout,另一行到stderr。很基础!编译并在命令行上运行完成时程序的输出(getchar()接收用户输入):$./teststringout1stringerr1str

python - 子进程.Popen : cloning stdout and stderr both to terminal and variables

是否可以修改下面的代码以从'stdout'和'stderr'打印输出:在终端上打印(实时),最后存储在outs和errs变量中?代码:#!/usr/bin/python3#-*-coding:utf-8-*-importsubprocessdefrun_cmd(command,cwd=None):p=subprocess.Popen(command,cwd=cwd,shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)outs,errs=p.communicate()rc=p.returncodeouts=outs.deco

python - 将 stdout 和 stderr 从辅助线程重定向到 PyQt4 QTextEdit

堆栈溢出。再一次,我在急需的时候来找你,在精神错乱的边缘摇摇欲坠。这个问题——从标题中可以看出——是我在这里看到的其他几个问题的合并。我有一个PyQt应用程序,我想将stdout和stderr流重新路由到我的GUI中的QTextEdit没有延迟。最初,我找到了以下堆栈溢出答案:https://stackoverflow.com/a/17145093/629404这很有效,但有一个警告:如果在CPU处理相对较长的方法时多次更新stdout或stderr,所有更新都会在主线程返回应用程序循环时同时显示。不幸的是,我有一些方法最多需要20秒才能完成(与网络相关),因此应用程序变得无响应-并且

python - 在 subprocess.check_output() 中抑制 stderr

我正在尝试寻找一种方法来忽略标准错误流(类似于2>/dev/null):output=subprocess.check_output("netstat-nptl".split())我应该在上面的命令中添加什么来实现这一点? 最佳答案 只需告诉subprocess为您重定向它:importsubprocessoutput=subprocess.check_output("netstat-nptl".split(),stderr=subprocess.DEVNULL)对于python2,它有点冗长。importosimportsubpr