什么是标准输入输出?

What is standard input and output?

我开始研究国际象棋引擎,我想遵循使用平面文本完成通信的 uci 界面。在规范中它说

all communication is done via standard input and output with text commands

但我不知道这实际上意味着什么。

我正在考虑将 C# 编写为 .net 标准库。我知道 uci 是跨平台的,我们不能用 Console.WriteLine 这样的语言交谈,但是 api 中的那一行对我来说意味着什么。

我是否必须 运行 循环监听 Console.ReadLine() 或类似的标准输入?我只是不明白。或者我应该编写一个控制台应用程序,将输入作为命令行参数,并将字符串写入控制台?

完整的规范可以从这里下载link: http://download.shredderchess.com/div/uci.zip

任何进程都有三个默认流:

  • 标准输入 (stdin):这是所有终端或控制台 ap 的唯一输入流。当您调用 Console.ReadLine 或 Console.Read 时,结果取自该流。
  • 标准输出 (stdout):当您在控制台单例中调用与输出相关的命令时 class,所有数据都在这里。例如 WriteLine 或 theWrite 方法。 color 和 beeps 命令也将数据发送到那里。
  • 标准错误(stderr):这是一个专门的流,用于将与错误相关的内容打印到控制台。这是专用的,因为某些应用程序和脚本解决方案想要隐藏这些消息。

您可以使用这些流与包含进程(例如控制台提示)进行通信。命令行参数只能传递给程序的主要方法。