Golangで受け付けた標準入力を一時ファイルにコピーする

Golangで、受け付けた標準入力(stdin)を、一時ファイルにコピーしたいことがあったので、備忘として残しておく。
一時ファイル(tmpファイル)については ioutil.TempFile()で、一時ファイルへのコピーについてはio.Copy()で行える。以下、実行例。

●stdinCp.go

package main
import (
"fmt"
"io"
"io/ioutil"
"os"
)
func main() {
stdinTemp, err := ioutil.TempFile("", "test")
if err != nil {
panic(err)
}
fmt.Println(stdinTemp.Name())
io.Copy(stdinTemp, os.Stdin)
}
[blacknon@blacknon-ThinkPad-X201]% ~(`・ω・´)  < echo aaa | ./stdinCp 
/tmp/test765158669
[blacknon@blacknon-ThinkPad-X201]% ~(`・ω・´)  < cat /tmp/test765158669 
aaa

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*