- 論壇徽章:
- 0
|
在Linux上寫了一個(gè)很簡(jiǎn)單的文檔寫入及讀取的小程式,可以寫入,但是卻無(wú)法讀取。
編譯沒有問題,也可以正常執(zhí)行,但是所產(chǎn)生的文檔屬性卻是
---------- 1 ken ken 11 2009-07-06 02:04 test.txt
雖然知道應(yīng)該是umask的問題,但還是不清楚要如何解決,請(qǐng)協(xié)助是那里出了問題
int main() {
int fd;
int size;
char s[] = "Test 123!\n";
char buffer[80];
fd = open("test.txt", O_WRONLY|O_CREAT);
write(fd, s, sizeof(s));
close(fd);
fd = open("test.txt", O_RDONLY);
size = read(fd, buffer, sizeof(buffer));
close(fd);
printf("%s", buffer);
return 0;
}
------------------------------------------------------
感謝版主的提示,在參考 《UNIX環(huán)境高級(jí)編程》4.5時(shí)發(fā)現(xiàn),如果是 create 新的文檔時(shí),就必須給第三個(gè)參數(shù) st_mode
更改為
fd = open("test.txt", O_WRONLY|O_CREAT, S_IRSER|S_IWUSR); 后,所產(chǎn)生的文檔屬性就變成
-rw------- 1 ken ken 11 2009-07-06 12:31 test.txt
讀取成功
[ 本帖最后由 uniken 于 2009-7-6 12:39 編輯 ] |
|