第8课-库函数方式文件编程

1.基于C函数库的程序是独立于操作系统的,可移植性更好。基于系统调用的编程依赖于内核,移植性不好。
2.流:在程序和源文件之间会建立一个数据通道访问文件里的数据,于是通道里的数据就成了抽象动态的流。
文件指针:对应于系统调用的文件描述符(整数)。是FILE类型的指针,通常是定义一个FILE* fp的变量描述一个指向文件的指针,FILE类型里包含了管理流信息的数据信息。
3.函数学习:

3.1 打开文件

Fopen(文件指针默认指向文件头)
3.1.2 函数原形
FILE *(const char *path, const char *mode);


3.1.3 函数功能fopen
从指定的路径按照指定的模式打开一个文件


3.1.4 所属头文件
<stdio.h>


3.1.5 返回值
成功:返回文件指针
失败:NULL


3.1.6 参数说明
Path文件名(含路径)
Mode打开文件的方式(两个参数都是字符串)
(1)r,rb-----------只读
(2)w,wb----------只写
(3)a,ab----------追加,若不存在则创建
(4)r+,r+b,rb+----读写
(5)w+,w+b,wb+---读写,若不存在则创建,存在则清空内容
(6)a+,a+b,ab+----读和追加,若不存在则创建
3.2 关闭文件
3.2.1 函数名
Fclose
3.2.2 函数原形
int fclose(FILE *fp);
3.2.3 函数功能
关闭文件
3.2.4 所属头文件
<stdio.h>


3.2.5 返回值
成功:返回0
失败:EOF


3.2.6 参数说明
Fp:待关闭文件的文件指针


3.3 读文件
3.3.1 函数名
Fread
3.3.2 函数原形
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);


3.3.3 函数功能
从文件中读取数据
3.3.4 所属头文件
<stdio.h>
3.3.5 返回值
成功:返回读取到的数据量(字节数)
失败:0
3.3.6 参数说明
Ptr:指向要保存数据的位置
Size:决定每一块的字节数
Nmemb:决定要读取的数据块数
Stream:指向要读取的文件


3.4 写文件3.4.1 函数名
Fwrite3.4.2 函数原形
size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);3.4.3 函数功能
向一个文件中写入事先存放在指定位置的数据3.4.4 所属头文件
<stdio.h>3.4.5 返回值
成功:返回成功写入的字节数失败:0

3.4.6 参数说明
Ptr:指向要写入数据的位置Size:决定每一块的字节数
Nmemb:决定要写入的数据块数Stream:指向要写入的文件



3.5 定位文件3.5.1 函数名Fseek
3.5.2 函数原形int fseek(FILE *stream, long offset, int whence);
3.5.3 函数功能设置文件的位置指针(隐形指针)
3.5.4 所属头文件<stdio.h>
3.5.5 返回值成功:返回0失败:-1
3.5.6 参数说明Stream:指向要移动位置指针的文件Offset:移动的距离(字节数)Whence:决定指针以什么位置为基准开始移动SEEK_SET:以文件头为基准,此时的offset只能是整数SEEK_CUR: 以当前位置为基准,此时的offset可正可负,正数往后移动,负数往前移动。SEEK_END:以文件尾为基准移动,此时的offset之能是负数。
3.6 int fgetc(FILE* fp)从指定文件读取一个字符,当读取到结束符的时候返回EOF
3.7 int fputc(int count,FILE* fp)向指定文件写入一个字符 (将c转化为unsigned char类型写入)
3.8 fscanf(FILE* fp,char* format[,argument])从一个流中进行格式化输入(格式化读)
3.9fprintf(FILE* fp,char* format[,argument]格式化输出到一个流(格式化写)
3.10 char* getcwd(char* buf,size_t size)获取当前路径,将其存放在buf,如果buf太小,返回-1
3.11 int mkdir(char* buf,int mode)
创建路径,成功返回0,失败返回-1

时间: 2024-10-13 12:18:36

第8课-库函数方式文件编程的相关文章

第7课-系统调用方式文件编程

一.核心理论:文件描述符(1)成年公民有身份证编号(2)打开的文件对应文件描述符.(3)实质就是一串数字.(4)作用就是能够区分所有打开的文件.二.函数学习man命令默认是按照Linux系统内置手册顺序查找你要搜索的关键词,一旦找到就不继续查找了.相应的顺序是1命令,2系统调用,3库函数.2.1 打开文件2.1.1 函数名Open2.1.2 函数原形(1)int open(const char* pathname,int flags);(2)int open(const char* pathna

linux应用开发-系统函数方式文件编程

linux应用开发-系统函数方式文件编程 一 系统调用 指调用系统的函数库 二 文件描述符 性质:一个数字 打开的文件对应一个数字即一个文件描述符 三 常用函数 1 打开文件 open 2 创建文件 creat 3 关闭文件 close 4 读文件 read 5 写文件 write 6 定位文件 lseek 7 复制文件描述符 dup 三 man命令查找顺序 1 命令 man read 2 系统调用函数 man 2 read 3 库函数 四 linux下main函数参数 void main(in

系统调用方式文件编程-open

通过Linux系统调用函数编写应用程序,该应用程序实现文件的复制功能 文件描述符--在Linux系统中,所有打开的文件也对应一个数字,这个数字由系统来分配. 1.打开文件--open 头文件:#include<sys/types.h>.#include<sys/stat.h>.#include<fcntl.h> 函数原型:int open(const char *pathname,int flags); int open(const char *pathname,int

linux应用程序开发-文件编程-系统调用方式

在看韦东山视频linux驱动方面有一些吃力,究其原因,虽然接触过linux应用程序编程,但是没有深入去理解,相关函数用法不清楚,正好看到国嵌视频对这一方面讲的比较透彻, 所以把学习过程记录下来,也作为linux应用程序开发的一个系列吧! 文件编程有两种方式,一是系统调用方式,二是库函数调用. 前者依赖特定的平台,后者不依赖平台. 系统调用:创建 int creat(const char *filename,mode_t mode); filename:要创建的文件名 mode:创建模式 S_IR

Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解

?? 上一篇博客我们讲解了如何使用Linux提供的文件操作函数,本文主要讲解使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存

NeHe OpenGL教程 第三十八课:资源文件

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第三十八课:资源文件 从资源文件中载入图像: 如何把图像数据保存到*.exe程序中,使用Windows的资源文件吧,它既简单又实用. 欢迎来到NeHe教程第38课.离上节课的写作已经有些时日了,加上写了一整天的code,也许笔头已经

多功能电子通讯录(涉及到了双向链表的使用,Linux文件编程等等)

readme.txt //作为一个程序员,我们咋么能不写用户手册呢!MSP的我觉得用户体验是王道,苹果手机的用户体验的确不错!不过WP加油!我去,扯远了!赶紧看我的程序吧!  歡迎使用多功能電子通訊錄V1.0版本        如有BUG敬請原諒     make  之後便可以使用     ./ebook  運行本程序     make clean 清理本程序中間文件     make cleanall 清除所有非源程序文件 PS:我本想直接给大家看代码的,但是在这个过程中,重要不仅仅是代码,首

NeHe OpenGL教程 第三十三课:TGA文件

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第三十三课:TGA文件 加载压缩和未压缩的TGA文件: 在这一课里,你将学会如何加载压缩和为压缩的TGA文件,由于它使用RLE压缩,所以非常的简单,你能很快地熟悉它的. 我见过很多人在游戏开发论坛或其它地方询问关于TGA读取的问题.

【Linux探索之旅】第二部分第九课:查找文件,无所遁形

内容简介 1.第二部分第九课:查找文件,无所遁形 2.第二部分测试题 查找文件,无所遁形 这一课不难,但挺重要的. 之前的课程我们见识过了Linux下文件的组织形式是很特别的,跟Windows不一样. 我们也用ls / 这个命令来列出根目录下的所有目录,有/bin,/etc,/var,/home,等等.而这些目录下又有子目录和文件,错综复杂. 这些目录中有一部分是历史遗留的,从Unix时代就有了.问题是:我们如何在这"茫茫文海"中查找我们需要的文件. "人潮人海中,有你有我.