标准input可用性(竞争条件?)

标准input可用性(竞争条件?),第1张

概述标准input可用性竞争条件?)

我在Java中编写一个命令行实用程序,它使用stdin或写入标准输出,具体取决于使用system.in.available()是否存在标准input上的数据:

public class MyUtility { public static voID main(String args[]) { if(system.in.available() > 0) consumeFromStdin(); else producetoStdout(); } // ... }

我正在使用system.in.available()检查来避免使用命令行参数,以使 *** 作模式依赖于它在shell中的使用方式(例如, java MyUtility | more vs. echo testing | java MyUtility )。

到目前为止,这在Mac命令行中运行良好; 在system.in.available()被调用的时候,stdin的可用性一直存在。 我的问题是:是否有可能,甚至在调用公用程序时也是如此

java MyUtility < input.txt

system.in.available()在这里可能会返回0?

最高cpu使用率的进程名称

文件系统是否将存储设备视为(非常大)的字节数组?

修复403 ForbIDden别名目录与Apache

CMake / CPack:不同平台的首选包生成器

获取windows版本的batch file

当然,我希望这可以用于所有的JVM实现,shell和 *** 作系统。 windows,Mac和linux在生成进程时,是否提供了对stdin数据可用性的不同(任何?)保证? 而且,即使 *** 作系统保证了数据的可用性,JVM是否也有保证这些数据的发言权呢? 做shell(即ksh,csh,PowerShell等)是否起作用?

linux下键盘事件处理的内部工作

如何在C中列出进程的所有文件描述符,而不用调用lsof或parsing/ proc / $ PID

任何人都可以告诉我如何以及他们如何在标题栏上5button而不是3最大,resize,在windows中closures?

你如何确定你正在运行最新的可执行文件?

进程间通信(IPC)

进程间通信独立于shell而存在。 标准输入和标准输出是外壳使用的 *** 作系统机制,但不创建。 非shell的进程始终使用它们。

我不太了解available()方法的规范,但是如果你在windows上执行一个快速检查并且它可以工作,其余的 *** 作系统大部分是UNIX风格的,我认为很可能将无处不在。

总结

以上是内存溢出为你收集整理的标准input可用性(竞争条件?)全部内容,希望文章能够帮你解决标准input可用性(竞争条件?)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1154908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存