首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

送分!打开一个文件,该如何解决

2012-04-14 
送分!打开一个文件一个文件能同时进行读写操作吗?为什么我第一个语句进行写数据(没有关闭),第二条语句就进

送分!打开一个文件
一个文件能同时进行读写操作吗?

为什么我第一个语句进行写数据(没有关闭),第二条语句就进行读数据,怎么读出来的数据是有错的呢?

我试过在第一和第二语句之间加上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把文件指针移到一定的位置然后读写

热点排行