文件读写io操作范例
系统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操作范例相关推荐
- 提高生产力:文件和IO操作(ApacheCommonsIO-汉化分享)
复制.移动.删除.比较.监控.文件读写 等文件和IO操作是编程中比较常用的功能. 幸运的是,Apache Commons IO等开源组件已经帮我们实现了. 我们可以不用重复造轮子了. 1 ...
- python怎么保存文件代码_Python文件读写保存操作的实现代码
本篇文章给大家带来的内容是关于Python文件读写保存操作的实现代码 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 记录下第一次使用Python读写文件的过程,虽然很简单,第一次实 ...
- Android U盘文件读写复制操作
Android U盘文件读写复制操作 应用开发起因 一.U盘的拔插监听及读取U盘设备 二.读取文件列表 1.U盘文件列表读取 2.Storage文件列表读取 三.通过文件列表进入文件,进行文本文件的读 ...
- 《java-----我的第一款像样的小软件》---运用了jsoup,jmail,多线程,文件的io操作等等
运用了jsoup,jmail,多线程,文件的io操作等等多项技术,经历了12*5多个小时终于完成了. 部分代码: package com.ytu.view;import java.awt.Border ...
- Matlab的各种数据读取、文件读写等操作汇总
Matlab的各种数据读取.文件读写等操作汇总 MATLAB提供了多种方式从磁盘读入文件或将数据输入到工作空间,即读取数据,又叫导入数据:将工作空间的变量存储到磁盘文件中称为存写数据,又叫导出数据.至 ...
- 不同存储结构的文件磁盘io操作次数_MySQL InnoDB存储引擎
第1章 MySQL体系结构和存储引擎 1.1数据库和实例 数据库:物理操作系统文件或其他形式文件类型的集合.实例:MySQL数据库由后台线程以及一个共享内存区组成.共享内存可以被运行 的后台线程所共享 ...
- 文件基础 IO 操作
文件IO 库函数 IO 打开文件 fopen 向文件写入数据 fwrite 从文件读取数据 fread 关闭文件 fclose 跳转当前读写位置 fseek 练习 系统调用接口 open write ...
- python读取写入文件_Python文件读写保存操作
记录下第一次使用Python读写文件的过程,虽然很简单,第一次实现其实也有些注意的事项. 单个文件的读操作: 我们先假设一个需求如下: 读取一个test.txt文件 删除指定字符之前的文本 需求明白之 ...
- python存文件代码_Python文件读写保存操作的示例代码
记录下第一次使用Python读写文件的过程,虽然很简单,第一次实现其实也有些注意的事项. 单个文件的读操作: 我们先假设一个需求如下: 读取一个test.txt文件 删除指定字符之前的文本 需求明白之 ...
最新文章
- ovirt官方安装文档 附录F
- ​“手把手撕LeetCode题目,扒各种算法套路的裤子”
- 计算机科学和Python编程导论(三) 一些简单的数值程序
- Office协同办公:SkyDrive
- python数据分析、整理、汇总展示_python-数据分析与展示(Numpy、matplotlib、pandas)---2...
- SpringBoot项目启动时控制台乱码,怎么办?
- web高德地图怎么加载离线地图_春节变胖了?高德地图隐藏的实用跑步功能 想怎么跑都随你...
- iOS - Label 数字动态变化
- 迁移学习(Transfer Learning)
- 小程序自定义tabbar占位问题
- 我在使用Spring Gateway时遇到的一些坑
- java 文本编码_Java文件编码
- 天正双击墙体不能编辑_【盘点】CAD、天正、Ps 快捷键最全汇总!
- Python正则表达式(网址正则/超链接正则)
- 工控随笔_08_西门子_Win10安装Step7.V5.6中文版授权管理器不能正常启动
- 微信公众号赞赏账户头像在哪里修改?附详细图文教程
- 使用python爬取招聘网站数据
- 建模师能干到多少岁?
- 火车运输(NOIP2013)
- Python绘制Mandelbrot Set与Julia Set
热门文章
- linux源码安装浏览器,Linux系统手动安装Firefox浏览器
- html产品列表页的设计,产品列表页.html
- 安川g7接线端子图_西门子SIWAREX称重模块安装接线注意事项!
- safari html 字体设置,肿么在Safari下用css强制修改网页字体
- 深度学习:Opencv的BlobfromImage如何工作
- 机器学习中的聚类算法(1):k-means算法
- 力扣(LeetCode)刷题,简单+中等题(第34期)
- 使用回调函数实现图像阈值分析。程序运行后在屏幕中输入阈值,通过改变滑动条实现不同类型的二值化图。
- 0.基于C++的图像处理算法实现、INTEL CPU上SSE加速、ARM CPU上NEON加速
- 读后感与机翻《从视频中推断力量和学习人类效用》