Opening Files
#Chapter_2,_File_I/O #Linux_System_Programming
The open() System call
Flags for open()
プロセスがそのファイルに対する対応するパーミッション(Permissions)を持っていなければならない
Owners of new Files
file ownerのuidはそのファイルを作ったプロセスのuidになる
グループは複雑
デフォルトではプロセスのeffective gidになる
BSDや親ディレクトリのsetgidbitによって異なる振る舞いになる
必要な時はfchown()システムコールを用いるべき→Chapter 8, File and Directory Management
あまりグループは気にしなくていいことが多い
Permissons of New Files
mode引数はO_CREATの時には必要だがそれ以外の時は必要ない
値は0700などの通常のパーミッション同じルール
厳密にいうとポータビリティのためにPOSIXはこのビットセットに名前をつけている
modeとumask(file creation mask)で実際のパーミッションが決まる→umask
The creat() Function
fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644);と同じ意味のシステムコール
これがシステムコールなのは後方互換性のため
Return Values and Error Codes