2020年7月11日土曜日

開発環境

Go Systems Programming: Master Linux and Unix system level programming with Go (渋川 よしき(著)、ごっちん(イラスト)、ラムダノート)、第3章(低レベルアクセスへの入り口2:io.Reader)、3.9(問題)、Q3.2(テスト用の適当なサイズのファイルを作成)の解答を求めてみる。

コード

package main

import (
	"crypto/rand"
	"errors"
	"fmt"
	"io"
	"os"
)

func eprintln(err error) {
	if err != nil {
		fmt.Fprintln(os.Stderr, err)
		os.Exit(1)
	}
}
func main() {
	if len(os.Args) < 2 {
		eprintln(errors.New("usage: randfile filename"))
	}
	file, err := os.Create(os.Args[1])
	eprintln(err)
	_, err = io.CopyN(file, rand.Reader, 1024)
	eprintln(err)
}

入出力結果(Zsh、PowerShell、Terminal)

% go build
% ./randfile 
usage: randfile filename
% ./randfile temp.dat
% ls -l temp.dat 
-rw-r--r--  1 kamimura  staff  1024  7 11 16:50 temp.dat
% ls -hl temp.dat 
-rw-r--r--  1 kamimura  staff   1.0K  7 11 16:50 temp.dat
% 

0 コメント:

コメントを投稿