系统io读写,copy

int main(int argc, char **argv)

{  if(argc != 3)

{   printf("Usage: %s <src> <dst>\n", argv[0]);

exit(0);

}

int fd1, fd2;  fd1 = open(argv[1], O_RDONLY);

fd2 = open(argv[2], O_CREAT | O_TRUNC | O_WRONLY);

if(fd1 == -1 || fd2 == -1)  {   perror("open() failed");   exit(0);  }

char buf[100];

int nread;

while(1)

{   bzero(buf, 100);   nread = read(fd1, buf, 100);

if(nread == 0) // hits the end of file

{    break;

}   if(nread == -1)

{    perror("read() failed");

exit(0);

}

write(fd2, buf, nread);  }

close(fd1);  close(fd2);

return 0; }

标准io读写操作.........................

fopen-----------------------------------------------------------------fclose范例:

int main(int argc, char **argv) {

if(argc != 3)  {

printf("Usage: %s <src> <dst>\n", argv[0]);

exit(0);

}

FILE *fp1 = fopen(argv[1], "r");

if(fp1 == NULL)  {

fprintf(stderr, "fopen(%s) failed: %s\n",     argv[1], strerror(errno));

exit(0);

}

FILE *fp2 = fopen(argv[2], "w");  if(fp2 == NULL)  {

fprintf(stderr, "fopen(%s) failed: %s\n",     argv[2], strerror(errno));

exit(0);

}

char *buf = calloc(5, 20);

int nread, nwrite;

while(1)  {   long begin = ftell(fp1);

nread = fread(buf, 20, 5, fp1); // n是真正读取到的数据块个数 n<=5          // 100 --> 5          // 98  --> 4          // 80  --> 4          // 21  --> 1          // 19  --> 0          // 1  --> 0

if(nread == 5) // 正常读取

{    char *p = buf;

while(nread > 0)    {

nwrite = fwrite(p, 20, nread, fp2); // nwrite <= n

nread -= nwrite;

p += nwrite*20;    }

}

else if(nread >= 0) // 到达文件尾部

{    long end = ftell(fp1);

fwrite(buf, end-begin, 1, fp2);

break;

}

else // 读取出错了

{    perror("fread() failed");

fclose(fp1);

fclose(fp2);

exit(0);

}  }

fclose(fp1);

fclose(fp2);

return 0; }

fgets--------------------------------------------------------------------fputs范例:

while(1)  {

char *tmp = fgets(buf, 20, fp1); // 从fp1读取一行(最多19字节)放到buf中

if(tmp == NULL)   {

// 1. 遇到了错误

if(ferror(fp1))    {

perror("fgets() failed");

break;

}

// 2. 遇到了文件尾

if(feof(fp1))

{     printf("copy completed.\n");

break;

}

}

fputs(buf, fp2);

}

fgetc----------------------------------------------------------------fputc

while(1)  {   ch = fgetc(fp1);

if(ch == EOF)

{    // 1. 遇到错误

if(ferror(fp1))

{     perror("fgetc() failed");

break;    }

// 2. 遇到文件尾

if(feof(fp1))    {

printf("copy completed.\n");

break;    }

}

fputc(ch, fp2);

}

转载于:https://www.cnblogs.com/defen/p/5242822.html

文件读写io操作范例相关推荐

  1. 提高生产力:文件和IO操作(ApacheCommonsIO-汉化分享)

    复制.移动.删除.比较.监控.文件读写 等文件和IO操作是编程中比较常用的功能. 幸运的是,Apache Commons IO等开源组件已经帮我们实现了.        我们可以不用重复造轮子了. 1 ...

  2. python怎么保存文件代码_Python文件读写保存操作的实现代码

    本篇文章给大家带来的内容是关于Python文件读写保存操作的实现代码 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 记录下第一次使用Python读写文件的过程,虽然很简单,第一次实 ...

  3. Android U盘文件读写复制操作

    Android U盘文件读写复制操作 应用开发起因 一.U盘的拔插监听及读取U盘设备 二.读取文件列表 1.U盘文件列表读取 2.Storage文件列表读取 三.通过文件列表进入文件,进行文本文件的读 ...

  4. 《java-----我的第一款像样的小软件》---运用了jsoup,jmail,多线程,文件的io操作等等

    运用了jsoup,jmail,多线程,文件的io操作等等多项技术,经历了12*5多个小时终于完成了. 部分代码: package com.ytu.view;import java.awt.Border ...

  5. Matlab的各种数据读取、文件读写等操作汇总

    Matlab的各种数据读取.文件读写等操作汇总 MATLAB提供了多种方式从磁盘读入文件或将数据输入到工作空间,即读取数据,又叫导入数据:将工作空间的变量存储到磁盘文件中称为存写数据,又叫导出数据.至 ...

  6. 不同存储结构的文件磁盘io操作次数_MySQL InnoDB存储引擎

    第1章 MySQL体系结构和存储引擎 1.1数据库和实例 数据库:物理操作系统文件或其他形式文件类型的集合.实例:MySQL数据库由后台线程以及一个共享内存区组成.共享内存可以被运行 的后台线程所共享 ...

  7. 文件基础 IO 操作

    文件IO 库函数 IO 打开文件 fopen 向文件写入数据 fwrite 从文件读取数据 fread 关闭文件 fclose 跳转当前读写位置 fseek 练习 系统调用接口 open write ...

  8. python读取写入文件_Python文件读写保存操作

    记录下第一次使用Python读写文件的过程,虽然很简单,第一次实现其实也有些注意的事项. 单个文件的读操作: 我们先假设一个需求如下: 读取一个test.txt文件 删除指定字符之前的文本 需求明白之 ...

  9. python存文件代码_Python文件读写保存操作的示例代码

    记录下第一次使用Python读写文件的过程,虽然很简单,第一次实现其实也有些注意的事项. 单个文件的读操作: 我们先假设一个需求如下: 读取一个test.txt文件 删除指定字符之前的文本 需求明白之 ...

最新文章

  1. ovirt官方安装文档 附录F
  2. ​“手把手撕LeetCode题目,扒各种算法套路的裤子”
  3. 计算机科学和Python编程导论(三) 一些简单的数值程序
  4. Office协同办公:SkyDrive
  5. python数据分析、整理、汇总展示_python-数据分析与展示(Numpy、matplotlib、pandas)---2...
  6. SpringBoot项目启动时控制台乱码,怎么办?
  7. web高德地图怎么加载离线地图_春节变胖了?高德地图隐藏的实用跑步功能 想怎么跑都随你...
  8. iOS - Label 数字动态变化
  9. 迁移学习(Transfer Learning)
  10. 小程序自定义tabbar占位问题
  11. 我在使用Spring Gateway时遇到的一些坑
  12. java 文本编码_Java文件编码
  13. 天正双击墙体不能编辑_【盘点】CAD、天正、Ps 快捷键最全汇总!
  14. Python正则表达式(网址正则/超链接正则)
  15. 工控随笔_08_西门子_Win10安装Step7.V5.6中文版授权管理器不能正常启动
  16. 微信公众号赞赏账户头像在哪里修改?附详细图文教程
  17. 使用python爬取招聘网站数据
  18. 建模师能干到多少岁?
  19. 火车运输(NOIP2013)
  20. Python绘制Mandelbrot Set与Julia Set

热门文章

  1. linux源码安装浏览器,Linux系统手动安装Firefox浏览器
  2. html产品列表页的设计,产品列表页.html
  3. 安川g7接线端子图_西门子SIWAREX称重模块安装接线注意事项!
  4. safari html 字体设置,肿么在Safari下用css强制修改网页字体
  5. 深度学习:Opencv的BlobfromImage如何工作
  6. 机器学习中的聚类算法(1):k-means算法
  7. 力扣(LeetCode)刷题,简单+中等题(第34期)
  8. 使用回调函数实现图像阈值分析。程序运行后在屏幕中输入阈值,通过改变滑动条实现不同类型的二值化图。
  9. 0.基于C++的图像处理算法实现、INTEL CPU上SSE加速、ARM CPU上NEON加速
  10. 读后感与机翻《从视频中推断力量和学习人类效用》