go语言接收linux/unix管道的数据
Posted 王大锤007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言接收linux/unix管道的数据相关的知识,希望对你有一定的参考价值。
管道的内容,位于os.Stdin里,可以像普通文件一个操作os.Stdin,即可获取管道传过来的内容。
package main import ( "bufio" "fmt" "log" "os" ) func main() { fileInfo, _ := os.Stdin.Stat() if (fileInfo.Mode() & os.ModeNamedPipe) != os.ModeNamedPipe { log.Fatal("The command is intended to work with pipes.") } s := bufio.NewScanner(os.Stdin) for s.Scan() { fmt.Println(s.Text()) } }
通过os.Stdin的mode值来判断程序是否通过管道调用。
调用方法:cat test.txt |./pipe
参考url:http://blog.ralch.com/tutorial/golang-command-line-pipes/
以上是关于go语言接收linux/unix管道的数据的主要内容,如果未能解决你的问题,请参考以下文章