送分!打开一个文件,该如何解决
送分!打开一个文件
一个文件能同时进行读写操作吗?
为什么我第一个语句进行写数据(没有关闭),第二条语句就进行读数据,怎么读出来的数据是有错的呢?
我试过在第一和第二语句之间加上rewind(pFP);
貌似也不行啊
------解决方案--------------------
一个文件能同时进行读写操作吗?
为什么我第一个语句进行写数据(没有关闭),第二条语句就进行读数据,怎么读出来的数据是有错的呢?
我试过在第一和第二语句之间加上rewind(pFP);
貌似也不行啊
------解决方案--------------------
- C/C++ code
#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()后,流里的数据会全部写入到文件
------解决方案--------------------
会有缓存的,在写入系统之后不会立马同步到磁盘上
------解决方案--------------------
------解决方案--------------------
文件指针问题,你可以用lseek把文件指针移到一定的位置然后读写