LS9-库函数方式文件编程之学习笔记

库函数调用方式文件编程

定义/功能:
通过通用函数库,增强程序的可移植性。
文件指针(FILL*)——文件描述符
1. 打开文件
1.1 函数名(功能+UNIX环境高级编程手册)
fopen
1.2 函数原形(终端man命令:man fopen)
FIFL fopen(const char path, cost char *mode);
1.3 函数功能
打开或创建一个文件
1.4 所属头文件

#include <stdio.h>

1.5 返回值
成功:返回文件描述符;失败:-1
1.6 参数说明
path:指定打开的包含路径的文件
mode:文件打开模式
1. r :打开只读文件,该文件必须存在。
2. r+ : 打开可读写的文件,该文件必须存在。
3. w :打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
4. w+: 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
5. a :以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
6. a+ :以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

  1. 关闭文件
    2.1 函数名(功能+UNIX环境高级编程手册)
    fclose
    2.2 函数原形(终端man命令:man fclose)
    int fclose(FIFL *fp);
    2.3 函数功能
    关闭文件
    2.4 所属头文件
#include <stdio.h>

2.5 返回值
成功:0;失败:EOF
2.6 参数说明
fp: 待关闭文件的文件描述符
3. 读取文件
3.1 函数名(功能+UNIX环境高级编程手册)
fread
3.2 函数原形(终端man命令:man close)
size_t fread(void *ptr, size_t size, size_t nmemb, FIFL *stream);
3.3 函数功能
从一个打开的文件读取数据
3.4 所属头文件

#include <stdio.h>

5.5 返回值
成功:读取到的数据量(字节数)
失败:0
5.6 参数说明
ptr:读取数据要保存的位置
nmemb:读取的数据块数
size:每块数据的大小
stream:指向要读取的文件
4. 写文件
4.1 函数名(功能+UNIX环境高级编程手册)
fwrite
4.2 函数原形(终端man命令:man write)
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FIFL *stream);
4.3 函数功能
向一个打开的文件写入数据
4.4 所属头文件

#include <unistd.h>

4.5 返回值
成功:写入文件的字节数
失败:0
4.6 参数说明
ptr:存放要写入的数据
nmemb:写入的数据块数
size:每块数据的大小
stream:指向要写入的文件指针

  1. 定位文件
    5.1 函数名(功能+UNIX环境高级编程手册)
    fseek
    5.2 函数原形(终端man命令:man fseek)
    int fseek(FIFE *stream, long offset, int whence);
    5.3 函数功能
    设置文件的位置指针
    5.4 所属头文件
#include <unistd.h>

5.5 返回值
成功:0; 失败:-1
5.6 参数说明
stream:要移动的文件
offset:要移动的偏移量
whence:移动的初始位置
SEEK_SET:文件头
SEEK_CUT:当前位置
SEEK_END:文件尾

综合实例:

#include <stdio.h>

int main()
{
    FIFE *fp; 
    char c_buf[20];
    char w_buf[10] = "0123456789";
    /*open file*/
    fp = fopen("/home/test.txt","w+");

    /*write data to file*/
    fwrite(w_buf,1,10,fp);

    /**/
    fseek(fp,SEEK_SET,0);

    /*read data from file*/
    fread(c_buf,1,10,fp);
    c_buf[10] = '\0'; 
    printf("c_buf is %s]n",c_buf);
    /*close file*/
    fclose(fp);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值