草庐IT

STDIN_FILENO

全部标签

ruby - Ruby 中的 STDIN 和 $stdin 有什么区别?

Ruby有两种引用标准输入的方法:STDIN常量和$stdin全局变量。除了我可以将不同的IO对象分配给$stdin因为它不是常量(例如,在我的child中fork重定向IO之前)之外,还有什么STDIN和$stdin的区别?我什么时候应该在我的代码中使用它们?如果我重新分配$stdin,它会影响STDIN吗?这是否也适用于STDOUT/$stdout和STDER/$stderr? 最佳答案 如果$stdin重新分配,STDIN不受影响。同样$stdinSTDIN时不受影响被重新分配(这是完全可能的(尽管毫无意义),但会产生警告)。

ruby - gets.chomp() 与 STDIN.gets.chomp() 之间有什么区别?

它们是相同的,还是这两个命令之间存在细微差别? 最佳答案 gets将使用Kernel#gets,它首先尝试读取通过ARGV传入的文件的内容。如果ARGV中没有文件,它将使用标准输入代替(此时它与STDIN.gets相同。注意:正如echristopherson指出的那样,Kernel#gets实际上会退回到$stdin,而不是STDIN。但是,除非您将$stdin分配给不同的输入流,否则默认情况下它将与STDIN相同。http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-ge

ruby - Ruby 中 STDIN 的最佳实践?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭2年前。Improvethisquestion我想用Ruby处理命令行输入:>catinput.txt|myprog.rb>myprog.rbmyprog.rbarg1arg2arg3...最好的方法是什么?特别是我想处理空白的STDIN,我希望有一个优雅的解决方案。#!/usr/bin/envrubySTDIN.read.split("\n").eachdo|a|putsaendARGV.eachdo|b|putsbend

javascript - 如何从控制台向 node.js stdin 发送 EOF 信号?

我有一个简单的node.js应用程序来回显标准输入。当我在Windows控制台上以交互方式运行它时,我希望control-Z被识别为EOF信号。但事实并非如此。那么如何让Node应用程序将control-Z视为EOF?//testEcho.jsprocess.stdin.setEncoding('utf-8');console.log("inputisaTTY?:",process.stdin.isTTY);process.stdin.on('readable',function(){varvText=process.stdin.read();if(vText!=null)consol

javascript - 从 Node 事件 process.stdin.on ("data"收到的数据中删除换行符)

我一直在寻找这个问题的答案,但无论我使用什么方法,似乎都无法切断字符串末尾的换行符。这是我的代码,我尝试使用str.replace()去除换行符,因为它似乎是这个问题的标准答案:process.stdin.on("data",function(data){varstr;str=data.toString();str.replace(/\r?\n|\r/g,"");returnconsole.log("usertyped:"+str+str+str);});我在控制台输出中重复了str对象三次以对其进行测试。这是我的结果:hiusertyped:hihihi如您所见,在每个str之间仍然

go - 这段go代码有什么问题,os.Stdin是什么?

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭7年前。Improvethisquestion1packagemain23import(4"bufio"5"fmt"6"os"7)89funcmain(){10input:=bufio.NewScanner(os.Stdin)11ifinput.Scan==1{12fmt.println("true

go - bufio.NewReader(os.Stdin) 和 fmt.Scanln() 有什么区别

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭3年前。Improvethisquestionpackagemainimport("bufio""fmt""os")funcmain(){in:=bufio.NewReader(os.Stdin)fmt.Println("PleaseinputS:")S,_:=in.ReadString('\n')fmt.Println("PleaseinputJ:")J,_:=in.ReadString('\n')sum:=numJewelsInStone

go - TCP 将 Stdout 发送到客户端并从客户端读取 Stdin

我正在尝试通过tcp连接远程执行程序我想在客户端服务器之间实时共享标准输出和标准输入。我有以下没有错误处理的测试服务器:p我知道,目前我无法执行带参数的程序,但这很容易处理:)packagemainimport("bufio""bytes""fmt""net""os/exec""strings")funcmain(){l,_:=net.Listen("tcp",":420")deferl.Close()for{//Waitforaconnection.conn,_:=l.Accept()gofunc(cnet.Conn){for{msg,_:=bufio.NewReader(conn)

Go Stdin Stdout 通信

我想执行一个go文件,我将在yaml配置文件中指定它,并以字节为单位向它发送一个Struct。我怎么能这样做?我认为我可以为此使用Stdin和Stdout但是想不通Yaml配置:subscribers:temp:topics:-pi/+/tempaction:./temp/tempBinary这是我的代码:client.Subscribe(NewTopic(a),func(c*Client,msgMessage){cmd:=exec.Command(v.Action)//Iactuallywanttosend[msg]toitsoitcanbeusedtherecmd.Stdin=by

go - 如何使用 Stdin 获取输入并等待 Golang 的 Stdin 中有新数据

我有一段代码需要在每次Stdin中有新输入时执行,但如果Stdin中没有任何内容,程序不应该终止,而是应该等待Stdin中的新数据,然后运行计算代码那个数据。这在Golang中如何实现?下面是一段代码:stat,_:=os.Stdin.Stat()if(stat.Mode()&os.ModeCharDevice)==0{fmt.Println("dataisbeingpipedtostdin")scanner:=bufio.NewScanner(os.Stdin)forscanner.Scan(){text:=scanner.Text()fmt.Println(text)//dosom