每个进程操作系统都会分配三个文件资源,分别是标准输入(STDIN)、标准输出(STDOUT)和错误输出(STDERR)。通过这些输入流,我们能够轻易得从键盘获得数据,然后在显示器输出数据。
标准输入
来自管道(Pipe)的数据也是标准输入的一种,我们写了以下的实例来输出标注输入的数据。
package main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
bytes, err := ioutil.ReadAll(os.Stdin)
if err != nil {
panic(err)
}
fmt.Println(string(bytes))
}
运行结果如下。
[email protected]:/go/src# echo string_from_stdin | go run stdin.go
string_from_stdin
标准输出
通过fmt.Println()
把数据输出到屏幕上,这就是标准输出了,这里不太演示了。
错误输出
下一节:并发(Concurrently)和并行(Parallel)是两个不同的概念。借用Go创始人Rob Pike的说法,并发不是并行,并发更好。并发是一共要处理(deal with)很多事情,并行是一次可以做(do)多少事情。