go基础库之编写标准输出和错误

每个进程都各有一个stdinstdoutstderr文件描述符。使用的标准方法是stdout作为进程输出,stderr作为进程错误输出。由于这些是文件描述符,因此写入数据的目标可以是从控制台到套接字的任何内容。本文将告诉你如何编写stdoutstderr

编写标准输出和错误

Golang 版本

1.12.1

前言

每个进程都各有一个stdinstdoutstderr文件描述符。使用的标准方法是stdout作为进程输出,stderr作为进程错误输出。由于这些是文件描述符,因此写入数据的目标可以是从控制台到套接字的任何内容。本文将告诉你如何编写stdoutstderr

实现

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一样,StdoutStderr是文件描述符。这些实现了Writer接口。

上面的示例展示了几种方法展示了如何通过io.WriteString函数写入这些内容,分别是使用Writer API以及fmt包和FprintXX函数。