Java与命令行中的标准输入



虽然操作系统中的每个命令行进程都可能使用标准输入,标准输出和标准错误数据流,但我对命令行参数和标准输入感到困惑。

也许我的理解不正确。但对我来说,标准输入似乎是除了命令行之外,将数据输入到程序中的另一种方式。如果您能帮助我理解两者的区别,我将不胜感激。

提前感谢。

考虑Java与任何其他程序的标准输入处理没有区别(至少在Linux下)。JVM中的标准输入继承自父节点的标准输入。和命令行"是不一样的概念

考虑Linux中的someProg arg1 arg2 <file:标准输入是命名文件,而不是命令行。

所有的进程都是从命令行开始的;在这种情况下,它含有someProg arg1 arg2。到进程启动时,命令行已经设置好了;从已启动的进程的角度来看,它就是它。

标准输入,相比之下,是一个输入文件(由描述符标识),程序可以根据需要从中读取输入。默认情况下,它是控制台,但如图所示,父进程(在本例中为shell)可以重定向它(在本例中为从名为file的文件中读取)。

用Java编程需要注意的一点是,正在运行的程序实际上是Java (JVM)本身。一些命令行是为JVM准备的,其他部分是为用Java编写的程序准备的。Java文档将区分这两者。

可以在C程序执行时从命令行传递一些值给它们。这些值被称为命令行参数,很多时候它们对你的程序很重要,尤其是当你想从外部控制你的程序而不是在代码中硬编码这些值的时候。

命令行参数是使用main()函数参数处理的,其中argc指的是传递的参数数量(主要是整数),argv[]是一个指针数组,指向传递给程序的每个参数(主要是字符数组/字符串)。下面是一个简单的示例,它检查命令行是否提供了任何参数,并采取相应的操作

相关内容

  • 没有找到相关文章

最新更新