草庐IT

STDIN_FILENO

全部标签

javascript - Node JS : Send EOF to stdin stream without closing stream

如何在不关闭流的情况下向流发送EOF信号?我有一个脚本等待stdin上的输入,然后当我按下ctrl-d时,它会将输出吐出到stdout,然后再次等待stdin,直到我按下ctrl-d。在我的nodejs脚本中,我想生成该脚本,写入标准输入流,然后以某种方式发出EOF信号而不关闭流。这不起作用:varhttp=require('http'),spawn=require('child_process').spawn;varchild=spawn('my_child_process');child.stdout.on('data',function(data){console.log(dat

stdin - node.js:从标准输入读取同步?

是否可以从node.js中的stdin同步读取?因为我正在用JavaScript为JavaScript编译器编写一个脑筋急转弯(只是为了好玩)。Brainfuck支持需要同步实现的读取操作。我试过了:constfs=require('fs');varc=fs.readSync(0,1,null,'utf-8');console.log('character:'+c+'('+c.charCodeAt(0)+')');但这只会产生这个输出:fs:189varr=binding.read(fd,buffer,offset,length,position);^Error:EAGAIN,Reso

stdin - node.js:从标准输入读取同步?

是否可以从node.js中的stdin同步读取?因为我正在用JavaScript为JavaScript编译器编写一个脑筋急转弯(只是为了好玩)。Brainfuck支持需要同步实现的读取操作。我试过了:constfs=require('fs');varc=fs.readSync(0,1,null,'utf-8');console.log('character:'+c+'('+c.charCodeAt(0)+')');但这只会产生这个输出:fs:189varr=binding.read(fd,buffer,offset,length,position);^Error:EAGAIN,Reso

python - 从文件或 STDIN 读取

我编写了一个命令行实用程序,它使用getopt来解析命令行上给出的参数。我还希望文件名是一个可选参数,例如它在其他实用程序中,如grep、cut等。所以,我希望它具有以下用法tool-dcharacter-finteger[filename]如何实现以下功能?如果给出了文件名,则从文件中读取。如果没有给出文件名,则从STDIN读取。 最佳答案 fileinput模块可以做你想做的事——假设非选项参数在args那么:importfileinputforlineinfileinput.input(args):printline如果arg

python - 从文件或 STDIN 读取

我编写了一个命令行实用程序,它使用getopt来解析命令行上给出的参数。我还希望文件名是一个可选参数,例如它在其他实用程序中,如grep、cut等。所以,我希望它具有以下用法tool-dcharacter-finteger[filename]如何实现以下功能?如果给出了文件名,则从文件中读取。如果没有给出文件名,则从STDIN读取。 最佳答案 fileinput模块可以做你想做的事——假设非选项参数在args那么:importfileinputforlineinfileinput.input(args):printline如果arg

java - 逐行读取 STDIN 的最快方法?

我正在寻找最省时的方式来逐行读取STDIN。第一行是要测试的条件数。以下所有行都是最多100000个字符的条件(字符串)。我已经尝试了以下(加上4次90000个字符的结果:带有while循环的扫描器(7255毫秒)Scannersc=newScanner(System.in);intnumberOfLines=Integer.parseInt(sc.nextLine());longstart=0;inti=1;while(i结果:扫描仪需要3228毫秒,而扫描仪需要2264毫秒,而扫描仪需要1309毫秒扫描仪需要454毫秒,而带有for循环的扫描器(7078毫秒)Scannersc=n

java - 逐行读取 STDIN 的最快方法?

我正在寻找最省时的方式来逐行读取STDIN。第一行是要测试的条件数。以下所有行都是最多100000个字符的条件(字符串)。我已经尝试了以下(加上4次90000个字符的结果:带有while循环的扫描器(7255毫秒)Scannersc=newScanner(System.in);intnumberOfLines=Integer.parseInt(sc.nextLine());longstart=0;inti=1;while(i结果:扫描仪需要3228毫秒,而扫描仪需要2264毫秒,而扫描仪需要1309毫秒扫描仪需要454毫秒,而带有for循环的扫描器(7078毫秒)Scannersc=n

java - 在 stdin 上阻塞使 Java 进程需要多 350 毫秒才能退出

我有一个Java程序如下:publicclassfoo{publicstaticvoidmain(String[]args)throwsException{Threadt=newThread(newRunnable(){publicvoidrun(){try{System.in.read();}catch(Exceptione){}}});t.setDaemon(true);t.start();Thread.sleep(10);//Makesureithitstheread()callt.interrupt();t.stop();System.exit(0);}}使用timejavaf

java - 在 stdin 上阻塞使 Java 进程需要多 350 毫秒才能退出

我有一个Java程序如下:publicclassfoo{publicstaticvoidmain(String[]args)throwsException{Threadt=newThread(newRunnable(){publicvoidrun(){try{System.in.read();}catch(Exceptione){}}});t.setDaemon(true);t.start();Thread.sleep(10);//Makesureithitstheread()callt.interrupt();t.stop();System.exit(0);}}使用timejavaf

java - 在 Java 6 中使用继承的 stdin/stdout/stderr 启动进程

如果我通过Java的ProcessBuilder启动一个进程类,我可以完全访问该进程的标准输入、标准输出和标准错误流,如JavaInputStreams和OutputStreams。但是,我找不到将这些流无缝连接到System.in、System.out和System.err的方法。可以使用redirectErrorStream()来获取单个InputStream包含子进程的标准输出和标准错误,然后循环并通过我的标准发送它出——但我找不到一种方法来做到这一点并让用户输入进程,如果我使用Csystem()调用,他或她可以。当JavaSE7出现时,这似乎是可能的——我只是想知道现在是否有解