こんにちは、kurumi-bioです。久々のGo言語の学習です。
第2回目のosパッケージ(標準ライブラリー)の学習です。
環境
OSバージョン:Windows11 Home 22H2
Go言語のバージョン:go version go1.19.4 windows/amd64
Chtimes関数
func Chtimes(name string, atime time.Time, mtime time.Time) error
Chtimes は、Unix の utime() または utimes() 関数と同様に、指定されたファイルのアクセス時刻と変更時刻を変更します。基礎となるファイルシステムは、値を切り捨てたり、精度の低い時間単位に丸めたりする場合があります。エラーがある場合、タイプは *PathError になります。
<サンプルコード>ChtimesSample.go
package main import ( "fmt" "os" "time" ) func main() { a := time.Date(2023, time.March, 2, 4, 5, 6, 0, time.UTC) m := time.Date(2023, time.February, 1, 3, 4, 5, 0, time.UTC) e := os.Chtimes("Chtimes.txt", a, m) if e != nil { fmt.Fprintf(os.Stderr, "os.Chtimes Error: %v \n", e) } else { fmt.Printf("os.Chtimes success\n") } }
<実行結果>
time.Dateは、引数に西暦、月、日、時、分、秒、ミリ秒を指定してtime変数を作成しています。
ですので、Chtimes.txtのアクセス時刻を2023年3月2日 4時5分6秒に、変更時刻を2023年2月1日 3時4分5秒に変更するプログラムです。
実行後にファイルのプロパティを見ると、更新日時が2023年2月1日 12時4分5秒で、アクセス日時が2023年3月2日 13時5分6秒になっています。
これは、os.ChtimesのロケーションにUTC(協定世界時)を指定していますが、表示は日本標準時 (JST)になっているため、+9時間になっているためです。
Clearenv関数
func Clearenv()
Clearenv はすべての環境変数を削除します。
<サンプルコード>ClearenvSample.go
package main import ( "fmt" "os" ) func main() { fmt.Printf("OS=[%s]\n", os.Getenv("OS")) os.Clearenv() fmt.Printf("OS=[%s]\n", os.Getenv("OS")) }
<実行結果>
os.Getenv関数で、環境変数OSの値を出力後にos.Clearenv()関数を使って環境変数を削除。そのため2回目の環境変数OSの値は空になっています。 プログラム実行後にDosコマンドで環境変数OSの値を出力していますので、プログラム内だけ環境変数が削除されていることになります。
Environ関数
func Environ() []string
Environ は、環境を表す文字列のコピーを "key=value" の形式で返します。
<サンプルコード>EnvironSample.go
package main import ( "fmt" "os" ) func main() { env := os.Environ() for _, s := range env { fmt.Printf("%s\n", s) } }
<実行結果>
長かったので途中でカットしましたが、全ての環境変数が出力できました。
最後までご覧いただきありがとうございます