您的位置:首页 > 新闻 > 资讯 > 自学嵌入式第十八天高级编程篇 文件1

自学嵌入式第十八天高级编程篇 文件1

2025/1/8 4:51:33 来源:https://blog.csdn.net/huangrong2001/article/details/141141285  浏览:    关键词:自学嵌入式第十八天高级编程篇 文件1

文件基础

        概念和作用     

                Linux下一切都是文件。文件是用来存放数据

        Linux中文件的类型

d目录文件(directory file)
-普通文件(regular file)
l符号链接文件(symbolic link file)
p命名管道文件(named pipe file)
s套接字文件(socket file)
c字符设备文件(character device file)
b块设备文件(block device file)

相关函数

        fopen

                函数原型:FILE *fopen(const char *pathname, const char *mode);

                功能:打开一个文件,并建立一个流

                参数:

//path:要打开文件的路径    //是一个字符串//mode:
//r 只读
//文件不存在报错
//文件存在则只读打开//r+ 读写
//文件不存在报错
//文件存在则读写打开//w 只写
//文件不存在则创建
//文件存在则清0只写打开//w+ 写读
//文件不存在则创建
//文件存在则清0写读打开//a 追加可写
//文件不存在则创建
//文件存在则追加只写打开     定位到文件最后增加内容。//a+ 追加读写
//文件不存在则创建
//文件存在则追加读写打开

                返回值:打开成功返回建立的文件流指针,失败则返回NULL。

                使用实例: 

        fputc

                函数原型:int fputc(int c, FILE *stream);

                功能:向流中写入一个字符

                参数:

//stream:文件流指针

                返回值:成功返回读到字符的ASCII码值读到文件末尾返回EOF失败返回EOF -1

                使用实例: 

        fgetc

                函数原型:int fgetc(FILE *stream);

                功能:从流中读取一个字符

                参数:

//stream:文件流指针

                返回值:成功返回读到字符的ASCII码值读到文件末尾返回EOF失败返回EOF -1

                使用实例:

 

        fputs

                函数原型:int puts(const char *s);

                功能:从s所在的本地内存中获取一行数据,并写入stream对应的文件流对象。

                参数:

//s 要写的信息,一般是固定的字符串或者有数据的数组。
//stream 要写入的目标文件流对象

                返回值:成功返回一个非负数,失败 -1;

                使用实例: 

        fgets

                函数原型:char *fgets(char *s, int size, FILE *stream);

                功能:从stream流对象关联的文件中获取size大小字节的文本数据并存储到s对应的本地内存(栈区数组,堆区内存)

                参数:

//s 要存储数据的本地内存
//size 要获取的数据长度,单位字节。
//stream 要获取的目标文件流对象,

                返回值:成功返回指向有效数据的首地址,一般等于s的地址,失败或者文件末尾 NULL;

                使用实例: 

        fwrite

                函数原型:size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);

                功能:从ptr所在本地内存中取出nmemb个大小为size的数据块写入到stream流对应的文件流对象中。

                参数:

//ptr 要存储数据的本地内存一般是数组或者结构体指针
//size 单个数据块的元数据大小。最小单元的大小
//nmemb 要获取的数据块的个数,拷贝的数据块个数。
//stream 要获取数据的源文件流对象,如果是stdin表示从
//键盘获取数据,如果是fp文件则表示从普通文件获取。

                返回值:成功返回小于等于nemeb的整数,表示获取的数据长度,失败小于0,结尾 0;

                使用实例: 

        fread

                函数原型:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

                功能:从指定的stream流对象中获取nmemeb个大小为size字节的数据块到ptr所在的本地内存中。

                参数:

//ptr 要写的数据块地址,一般是数组或者结构体指针
//size  要写的数据块元数据大小,单位是字节
//nmemb 要写的数据块的个数
//stream 要写的目标文件流对象。如果是stdout则表示数据会
//写到终端屏幕显示,如果是fp的普通文件则会写入到文件中

                返回值:成功返回小于等于nmemb 的个数,失败 <0

                使用实例: 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com