- 论坛徽章:
- 0
|
在Linux上写了一个很简单的文档写入及读取的小程式,可以写入,但是却无法读取。
编译没有问题,也可以正常执行,但是所产生的文档属性却是
---------- 1 ken ken 11 2009-07-06 02:04 test.txt
虽然知道应该是umask的问题,但还是不清楚要如何解决,请协助是那里出了问题
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环境高级编程》4.5时发现,如果是 create 新的文档时,就必须给第三个参数 st_mode
更改为
fd = open("test.txt", O_WRONLY|O_CREAT, S_IRSER|S_IWUSR); 后,所产生的文档属性就变成
-rw------- 1 ken ken 11 2009-07-06 12:31 test.txt
读取成功
[ 本帖最后由 uniken 于 2009-7-6 12:39 编辑 ] |
|