实验要求

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

2、利用Linux操作系统的系统调用函数open(), read(), write(), close() 来实现简单的文件备份, 即将一个文件的内容拷贝到另一个文件中去。

代码

c语言

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using  namespace std;#define BUF_SIZE 4096
#define src_path "12.exe"
#define dst_path "22.exe"int main(void) {char buf[BUF_SIZE];FILE *source, *backup;long  long  ret;clock_t start, end;double time;source = fopen(src_path, "rb");backup = fopen(dst_path, "wb");if (!source) {printf("Error in opening file.\n");exit(1);}if (!backup) {printf("Error in creating file.\n");exit(1);}// 备份start = clock();  // 开始计时int t = 0;while (fread(buf, BUF_SIZE, 1, source) == 1) {fwrite(buf, BUF_SIZE, 1, backup);t++;}fseek(source, BUF_SIZE*t, SEEK_SET);  // 重定位ret = fread(buf, 1, BUF_SIZE, source);fwrite(buf, 1, ret, backup);end = clock();  // 结束计时if (fclose(source)) {printf("Error in close file:source.\n");exit(1);}if (fclose(backup)) {printf("Error in close file:backup.\n");exit(1);}time = (double(end - start) / CLOCKS_PER_SEC);printf("运行时间:%f s\n", time);
}

Linux操作系统

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>#define BUF_SIZE 10240
#define src_path "12.exe"
#define dst_path "22.exe"int main(void) {char buf[BUF_SIZE];int source, backup;long  long  ret;source = open(src_path, 0);backup = open(des_path, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR);if (source == -1) {printf("Error in opening file.\n");exit(1);}if (backup == -1) {printf("Error in creating file.\n");exit(1);}// 备份while((ret = read(source, buf, BUF_SIZE)) != 0){if(ret == -1){printf("Error in reading file.\n"); exit(1);}int status = write(backup, buf, ret);if(status == -1){printf("Error in writing file.\n"); exit(1);       }}if(close(source) == -1){printf("Close error.\n"); exit(1);}if(close(backup) == -1){printf("Close error.\n"); exit(1);}
}

文件管理实验:备份文件(C语言和Linux系统调用)相关推荐

  1. 为什么说C语言和linux是分不开的?

    为什么说C语言和linux是分不开的? 在很多人的眼里,C语言和linux常常是分不开的.这其中的原因很多,其中最重要的一部分是linux本身就是C语言的杰出作品.当然,linux操作系统本身对C语言 ...

  2. arm汇编和c语言混合编程实验报告,实验三C语言和ARM汇编混合编程指导书.doc

    实验三C语言和ARM汇编混合编程指导书 实验三 1. 实验目的 掌握C语言和ARM汇编混合编程方法. 2. 实验设备 硬件:PC 机 一台 软件:Windows98/XP/2000 系统,ADS 1. ...

  3. 用c语言编程牛顿环实验报告,C语言和Origin7.5软件在实验中的应用——以牛顿环测纯水折射率为例.pdf...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspC/C++资料 C语言和Origin7.5软件在实验中的应用-- ...

  4. 嵌入式基础:C语言和Linux系统基础内容梳理

    操作系统 1.操作系统是一个软件 2.管理硬件资源 3.为上层的应用层序提供简单易用的接口. linux---------------------------------------- 1.开源.免费 ...

  5. 区块链需要c语言和linux嘛,区块链技术如何运作?使用什么开发语言?

    区块链技术如何运作?使用什么开发语言?这可能是现在许多区块链程序员的声音.以下是四个区块链技术的主要发展词汇,希望能帮助您. java开发语言(未来币) 定义:Java是一种面向对象的编程语言,不仅吸 ...

  6. 操作系统实验| Linux系统调用的实现

    Linux系统调用的实现 前言 01 实验内容 02 实验环境 03 更换国内源 04 安装编译所需依赖 05 获取内核源码 06 添加自定义系统调用 07 添加函数声明和定义 08 编译内核 09 ...

  7. linux实验之文件与文件,linux实验报告文件系统与文件管理.doc

    linux实验报告文件系统与文件管理 学生课程实验报告书 课程: <linux网络操作系统> 级 系 专业 班 学号: 姓名: 指导教师: 一.实验项目: 用户与组群管理 二.实验日期: ...

  8. HDU操作系统 实验1.2·1.3——设计和添加Linux系统调用

    实验介绍 上篇文章已经介绍了Linux内核的编译与安装,我们已经掌握了Linux系统内核的编译和启用.接下来,我们将学习掌握如何添加Linux的系统调用,学习掌握测试Linux系统调用. 什么是系统调 ...

  9. 一步步编写操作系统 69 汇编语言和c语言共同协作 70

    由于有了上一节的铺垫,本节的内容相对较少,这里给大家准备了两个小文件来实例演示汇编语言和c语言相互调用. 会两种不同语言的人,只是掌握了同一件事物的两种表达方式.人在学习一种新语言时,潜意识里是建立了 ...

最新文章

  1. 佐治亚理工学院硕士建议:2022年你应该掌握这些机器学习算法
  2. [51nod]1284 2 3 5 7的倍数(容斥原理)
  3. Android AES加密算法,现在实际上
  4. u-boot分析之小结(六)
  5. 4k hidpi 黑苹果_【ITX小钢炮】黑苹果安装经验分享
  6. Android数据存储之GreenDao 3.0 详解
  7. LVS之NAT模型配置实验
  8. liunx常用命令笔记
  9. elf文件格式实例解析
  10. contentType类型,ajax内容类型
  11. 读取文件中的文本并返回字符串
  12. OpenShift Redhat的使用和介绍
  13. 二叉树查找后继节点(即中序遍历情况下的这个节点的下一个) Python实现
  14. 几何画板椭圆九种画法_详解椭圆的五种画法,很全面!!!
  15. 使用阿里云邮件推送服务群发邮件
  16. 计算机应用基础 (2013),计算机应用基础
  17. off-by-one error
  18. linux笔记本设置开机自动禁用触摸板
  19. superset 完全汉化
  20. 既有住宅加装电梯数学建模问题

热门文章

  1. GoAhead2 - 命令使用介绍
  2. 关于用pytorch构建vgg网络实现花卉分类的学习笔记
  3. bootstrap-select 插件 搜索下拉框 下拉选项太多导致下拉不显示
  4. 【技术手册】Java 开发者必备手册《Spring Cloud Alibaba 从入门到实战》
  5. 利乐包、利乐枕、利乐包、利乐砖、无菌塑料袋、屋顶盒的区别
  6. 阿里集团副总裁胡晓明:P2P将现倒闭潮(转)
  7. 什么是骨传导耳机?骨传导耳机对比一般耳机优势在哪?
  8. 计算机网络对等网规划设计实验报告,对等网的组建实验报告.doc
  9. iOS10字体不适配
  10. 判断各种苹果屏幕分辨率,设置对应样式