04操作系统实验_文件系统

时间:2026-01-15

广州大学_操作系统实验_文件系统

广州大学学生实验报告

文件管理实验 (一)简单的I/O流操作:备份文件

一、实验目的

了解简单的I/O流操作:备份文件。

二、实验内容

利用函数fopen(), fread(), fwrite(), fclose() 来实现简单的文件备份, 即将一个文件的内容拷到另一个文件中去。

三、实用程序

#include <sys/types.h>

#include <stdio.h>

#define BUF_SIZE 1024

int main(void)

{

char buf[BUF_SIZE];

FILE *source, *backup;

if(!(source=fopen("source.dat", "r"))) //以只读方式打开文件sourc.dat

{

printf("Error in opening file.\n");

exit(1);

}

if(!(backup=fopen("backup.dat", "w"))) //以只写方式打开文件backup.dat

{

printf("Error in creating file.\n");

exit(1);

}

//while(fread(buf, sizeof(buf), 1, source)==1)

unsigned long readNum = 0; //已读取字符数

while((readNum = fread(buf, sizeof(char), sizeof(buf), source))) //若读入的字符大于0,循环读写

{

广州大学_操作系统实验_文件系统

fwrite(buf, sizeof(char),readNum, backup); //写入文件

//if(fwrite(buf, sizeof(buf), 1,backup))

if (ferror(backup)) //判断是否出现写入错误

{

printf("Error in wrinting file.\n");

exit(1);

}

}

//if(ferror(source)==0)

if (ferror(source)) //判断是否读取错误

{

printf("Error in reading file.\n");

exit(1);

}

//if(!fclose(source))

if(fclose(source)) //关闭源文件流

{

printf("Error in close file.\n");

exit(1);

}

if(fclose(backup)) //关闭备份文件流

{

printf("Error in close file.\n");

exit(1);

}

return 0;

}

在程序目录创建source.dat文件,内容如下:

广州大学_操作系统实验_文件系统

编译并运行修改好的程序:

最后在桌面上的到backup.dat文件(大小与source.dat相同):

结果分析:

原代码主要错误在于fwrite和fread的使用不正确。

心得体会

这次的实验较为简单,fread(),fwrite()等的使用虽然不难,但是却容易让人犯错误。

让我懂得即使看似简单的函数,也要仔细了解其说明文档,才能避免犯”低级“错误,以免造成难以发现的bug,甚至严重后果。

04操作系统实验_文件系统.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219