送分!打开一个文件
一个文件能同时进行读写操作吗?
为什么我第一个语句进行写数据(没有关闭),第二条语句就进行读数据,怎么读出来的数据是有错的呢?
我试过在第一和第二语句之间加上rewind(pFP);
貌似也不行啊
[解决办法]
#include "unix.h"int main(){ char buf1[] ="1234567891234567991233456789"; char buf[50]; int fd,m; int i; fd=open("2.txt",O_CREAT|O_RDWR); if (write(fd,buf1,sizeof(buf1)/sizeof(char))!= sizeof(buf1)/sizeof(char)) printf("write error\n"); else printf("write ok\n"); #if 0 //修改这个可以看出不同的 close(fd); fd=open("2.txt",O_CREAT|O_RDWR); if (fd == -1) { printf("open error\n"); return ERROR; } else printf("fd = %d\n",fd); #endif if((m = read(fd,buf,50))== -1) return ERROR; for (i = 0;i<sizeof(buf1)/sizeof(char);i++) { printf("%c",buf[i]); } return 0;}
[解决办法]
没有关闭文件时,数据只有在内存中达到一定量后,才写入到文件。fclose()后,流里的数据会全部写入到文件
[解决办法]
会有缓存的,在写入系统之后不会立马同步到磁盘上
[解决办法]