Slide 5
Slide 5 text
os/execパッケージでの利用例
■ 1度しか閉じないファイル
● https://cs.opensource.google/go/go/+/master:src/os/exec/
exec.go;l=595-609
● *os.File型を埋め込んでデコレーションしている
type closeOnce struct {
*os.File
once sync.Once
err error
}
func (c *closeOnce) Close() error {
c.once.Do(c.close)
return c.err
}
func (c *closeOnce) close() { c.err = c.File.Close() }