c语言 文件 lseek,文件IO编程之(二):read.write.lseek
下面认真分析write.c函数
#include//包含必要的头文件
#include#include#include#include#include#include#define MAXSIZE
int main(void)
{
int i,fd ,size,len;//定义有关变量
char *buf ="hello ! I am writing to this file!";//定义一个字符串指针
char buf_r[10];//定义一个数组
len=strlen(buf);//求buf的长度
printf("the len is %d\n",len);
if((fd=open("/tmp/hello.c",O_CREAT | O_TRUNC |O_RDWR,0666))<0)//打开hello.c文件
{
perror("open :");
exit(1);
}
else
{
printf("open file:hello.c %d\n",fd);
}
if((size=write(fd,buf,len))<0)//在hello.c文件里写数据,将buf中的内容写入到打开的文件中
{
perror("write:");//判断写是否成功
exit(1);
}
else
{
printf("write:%s\n",buf);//打印buf里面的数据
}
lseek(fd,0,SEEK_SET);//将文件指针移到文件开始
if((size=read(fd,buf_r,10))<0)//读出文件中的10个字节
{
perror("read:");
exit(1);
}
else
{
printf("the reading size is %d\n",size);
printf("read form file:%s\n",buf_r);
}
if(close(fd)<0)//关闭文件
{
perror("close:");
exit(1);
}
else
{
printf("close hello.c\n");
}
exit(0);
}
/*--------------------------------
notes:
1.strlen(返回字符串长度)
1)表头文件:#include2)定义函数 size_t strlen(const char *s)
3)函数说明 strlen()用来计算指定的字符串s的长度,不包括结束字符"\0".
4)返回值 返回字符串s的字符数
2.write(将数据写入已打开的文件内)
1)所需头文件 #include2)函数原型 ssize_t write(int fd,void *buf,size_t count)
3)输入参数
fd:文件描述符
buf:指定存储器写入数据的缓冲区
count:指定写入的字节数
4)函数返回值
成功:已写的字节数
-1:出错
3.lseek
1)所需头文件
#include#include2)函数原型
off_t lseek(int fd,off_t offset,int whence)
3)函数入口参数
fd:文件描述符
offset:偏移量,每一读写操作所需要移动的距离,单位是字节的数量,可
正可负(向前移,向后移)
whence:当前位置的基点
SEEK_SET:当前位置为文件的开头,新位置为偏移量的大小
SEEK_CUR:当前位置为文件指针的位置,新位置为当前位置加上偏移量
SEEK_END:当前位置为文件的结尾,新位置为文件的大小加上偏移量的大小
4)
成功:文件的当前位置
-1:出错
4.read
1)所需头文件:#include2)函数原型:ssize_t read(int fd,void *buf,size_t count)
3)输入参数
fd:文件描述符
buf:指定存储器读出数据的缓冲区
count:指定读出的字节数
4)函数的返回值
成功:读到的字节数
0:已到达文件尾
-1:出错
5)
在读普通文件时,若读到要求的字节数之前已到达文件的尾部,则返回字节数
会小于希望读出的字节数
注意:
在读写文件时,必须要移动文件指针,不然的话会出现问题,必须使用lseek函数,在调试中已经明显地发现了这点。
----------------------------*/
c语言 文件 lseek,文件IO编程之(二):read.write.lseek相关推荐
- java编写程序实现文件拷贝_Java IO编程——文件拷贝
在操作系统里面有一个copy命令,这个命令的主要功能是可以实现文件的拷贝处理,现在要求模拟这个命令,通过初始化参数输入拷贝的源文件路径与拷贝的目标路径实现文件的拷贝处理. 需求分析: ·需要实现文件的 ...
- 嵌入式Linux应用开发 1.系统编程 文件IO:open close write read lseek 通过文件io实现cp命令
跟着b站边学边记,加上自己的理解和代码的测试,也算是给自己做个笔记. 1.使用linuxIO和我们直接写程序的区别 我们平常直接写程序,属于在应用层写程序,通过我们的printf传入内核(在这里pri ...
- linux 带缓存的fwrite,文件IO编程之(六):基于流缓冲 fopen,fwrite,fput
标准IO开发 前面分析的文件IO编程都是基于文件描述符的.这些都是基本的IO控制,是不带缓存的. 这里要讨论的IO操作是基于流缓冲的,它是符合ANSIC的标准IO处理. 标准IO提供流缓冲的目的是尽可 ...
- Python基础-IO编程-读文件read-写文件write
IO 编程初识 IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动.Input Stream就是数据从外面(磁盘.网络)流进内存,Outpu ...
- C语言-浅谈文件IO
文章目录 文件IO 1.文件io的特点 2.文件io的操作步骤 2.1打开文件 2.2关闭文件 2.3 操作文件 2.4 其他函数 文件IO 1.文件io的特点 (1)文件描述符(非负的整数) (2) ...
- c语言 自己编程解析 xml,C语言解析.XML文件
最近手头上有个活在忙,中间很重要的一部分就是用C语言将.XML文件中想要的key和value读出来,与之前已有的值进行比较. 核心的.XML文件的格式如下: zzz xxx yyy 而我的思路是这样的 ...
- 2.Linux文件IO编程
2.1Linux文件IO概述 2.1.0POSIX规范 POSIX:(Portable Operating System Interface)可移植操作系统接口规范. 由IEEE制定,是为了提高UNI ...
- c语言中程序文件与程序的转换,MCU-C程序基本编程规范(转)
为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范.本标准规定了程序设计人员进行程序设计时必须遵循的规范.本规范主要针对单片机编程语言和08编译器而言,包括排版.注释.命名.变量 ...
- python学习——IO编程——文件读写
python--IO编程--文件读写 IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动.Input Stream就是数据从外面(磁盘.网络 ...
最新文章
- RabbitMQ 入门系列(9)— Python 的 pika 库常用函数及参数说明
- 面试:如何决定使用 HashMap 还是 TreeMap?
- kafka多分区只有一个在消费_kafka多个消费者只有一个消费
- Opencv定义感兴趣区域
- Bzoj2762: [JLOI2011]不等式组
- android studio换主题,为Android Studio换上一副更加好看的主题
- QTableWidgetble自定义表头排序设置
- JAVA_OA(十四):SSM练手项目bug-JSP页面传递参数的编码问题
- 数据有了,如何构建数据资产?
- idam oracle_oracle错误代码大全(超详细)
- saltapi java_搭建基于Jenkins salt-api的运维工具
- java数据结构与算法_清华大学出版社-图书详情-《数据结构与算法分析(Java版)》...
- 现实世界的Windows Azure:Quest Software and OnDemand Migration for Email
- QTTabBar在win10下多标签栏功能消失
- 有时间的时候没钱,有钱的时候没时间_天使Emily_一起游博客_一起游_17u.com
- 西门子SMART 200 modbus rtu通讯宇电温控器例程
- c++标准扩展TR1
- vm虚拟机安装lede旁路由_利用VMM虚拟机 安装LEDE旁路由 实现软路由超强功能
- 唯美多功能自适应个人主页源码html
- C语言输入三角形三条边边长 算三角形面积