原创 库函数方式文件编程

2015-3-5 22:37 934 21 21 分类: MCU/ 嵌入式 文集: Linux应用程序开发学习
库函数方式文件编程的优点:基于C函数库的文件编程是独立于具体的操作系统的,不管是在windows,linux,还是其他的操作系统中,都是使用这些函数。使用库函数进行程序设计可以提高程序的可移植性。
 
流:对于标准的C函数库,他们的操作都是围绕流来进行的。流是一个抽象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。
nr7fjsb6h7uhmli5lad9o623k3_bcd3833229cfd98ddef3d6c6d72c531f1425566198.5005.jpg
 
文件指针:在系统调用方式实现的文件访问中,使用文件描述符(一个非负整数)来指向一个文件。在库函数方式的文件访问中,使用FILE类型来表示一个打开的文件,这个类型中包含了管理文件流的信息。而指向该类型的指针FILE * 则被称之为文件指针。
 

3.1 打开文件

3.1.2 函数原形     FILE *fopen(const char *path, const char *mode);
3.1.3 函数功能     打开文件
3.1.4 所属头文件    
3.1.5 返回值     成功:返回FILE指针 失败:返回NULL
3.1.6 参数说明     path:待打开的文件的路径。     mode:文件打开模式
 

3.2 关闭文件

3.2.1 函数名     fclose
3.2.2 函数原形     int fclose(FILE *fp);
3.2.3 函数功能     关闭打开的文件
3.2.4 所属头文件    
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 所属头文件    
3.3.5 返回值     成功:返回读取到的数据量 失败:返回0
3.3.6 参数说明     ptr:读取到的数据存放的位置     size:读取的每一份数据的大小    nmemb:需要读取nmemb份数据     stream:待读取的数据流
 

3.4 写文件

3.4.1 函数名     fwrite
3.4.2 函数原形     size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
3.4.3 函数功能     向文件中写入数据
3.4.4 所属头文件    
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 所属头文件    
3.5.5 返回值     成功:0 失败:-1
3.5.6 参数说明    stream:要定位的文件流 offset:偏移量  whence: 设置起始的文件指针位置
 
小实验:创建一个txt文件,且打印出写进该txt文件中的数据。
#include
int main()
{
    char *buf = "1234567890";
    char buff_read[11];
    FILE *fp;
    fp = fopen("/home/copy_commander/num.txt", "a+");
    fwrite(buf, 1, 10, fp);
    fseek(fp, 0, SEEK_SET);
    fread(buff_read, 1, 10, fp);
    buff_read[10] = "\0";
    printf("%s\n", buff_read);
    fclose(fp);
    return 0;
}
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
21
关闭 站长推荐上一条 /3 下一条