2016-12-21 11 views
1

サンプルコード:filemodeをintに変換するには?

func main() { 
    p, _ := os.Open(os.Args[1]) 
    m, _ := p.Stat() 
    println(m.Mode().Perm()) 
} 

ファイルモード0775-rwxrwxr-x)を持っています。それを実行すると、好き:

func main() { 
    p, _ := os.Open(os.Args[1]) 
    m, _ := p.Stat() 
    println(m.Mode().Perm().String()) 
} 

このコードを印刷-rwxrwxr-x:メイン

プリント509

そして第二に./main

を。

モードはどのようにして0775の形式で取得できますか?

答えて

2

509は、パーミッションビットの10進表現(10進数)です。

フォーム0775は、8進表現(ベース8)です。あなたは%o動詞を使用して進表現に番号を印刷することができます。

perm := 509 
fmt.Printf("%o", perm) 

出力(Go Playground上でそれを試してみてください):

775 

あなたは出力が有力0と4桁の数字(になりたい場合はこの場合)、フォーマット文字列"%04o"を使用してください:

fmt.Printf("%04o", perm) // Output: 0775 
+0

ありがとう、良い男。 –