Goでファイルを分割してアップロードするAPIのクラアントのコードを作成していたときにしったことです。 2GBのバッファを使ってReadする Go で以下のようなコードで一度のReadで2GB読み込もうとすると、bufferに1GB分のデータしか格納されませんでした。 package main import ( "flag" "log" "os" ) func main() { fname := flag.String("f", "", "file name") flag.Parse() buf := make([]byte, 2*1024*1024*1024) f, err := os.Op…