2011-11-15 7 views
2

次のコードでは、ユーザー、グループ、およびその他のユーザーに対して読み取りと書き込みの権限を持つファイルが作成されないのはなぜですか?このCコードは、ユーザー、グループ、およびその他のアクセス許可を読み書きするファイルを作成しないのはなぜですか?

char data[10] = "123456789"; 
    int fh = open("test.txt", O_RDWR|O_CREAT, 0666); 
    write(fh, data, 10); 
    printf(strerror(errno)); 
    close(fh); 

は、このファイルを生成します:

-rw-r--r-- 1 pc users  9 Nov 15 16:15 test.txt 

それはどういう意味しますか?私は具体的にすべてのカテゴリでr + wを求めました。

答えて

6

open()を呼び出す前にumask()システムコールを使用してuser maskをリセットしてください。

+0

+1。マニュアルから: "umaskのアクセス権はmode引数からopen(2)にオフになります" –

+0

ここでは正確な呼び出しがあります:umask(0000);ありがとう:) – Blub

関連する問題