每个进程都各有一个stdin
,stdout
和 stderr
文件描述符。使用的标准方法是stdout
作为进程输出,stderr
作为进程错误输出。由于这些是文件描述符,因此写入数据的目标可以是从控制台到套接字的任何内容。本文将告诉你如何编写stdout
和stderr
。
编写标准输出和错误
Golang 版本
1.12.1
前言
每个进程都各有一个stdin
,stdout
和 stderr
文件描述符。使用的标准方法是stdout
作为进程输出,stderr
作为进程错误输出。由于这些是文件描述符,因此写入数据的目标可以是从控制台到套接字的任何内容。本文将告诉你如何编写stdout
和stderr
。
实现
package main
import (
"fmt"
"io"
"os"
)
func main() {
// 只需写字符串
io.WriteString(os.Stdout,
"这是标准输出的字符串。\n")
io.WriteString(os.Stderr,
"这是标准错误输出的字符串。\n")
// Stdout/err实现了writer接口
buf := []byte{0xAF, 0xFF, 0xFE}
for i := 0; i < 200; i++ {
if _, e := os.Stdout.Write(buf); e != nil {
panic(e)
}
}
// fmt包也可以使用
fmt.Fprintln(os.Stdout, "\n")
}
$ go run main.go
这是标准错误输出的字符串。
这是标准输出的字符串。
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
原理
与前文中的Stdin
一样,Stdout
和Stderr
是文件描述符。这些实现了Writer接口。
上面的示例展示了几种方法展示了如何通过io.WriteString
函数写入这些内容,分别是使用Writer
API以及fmt
包和FprintXX
函数。