Linux C的简单文件操作

fopen打开文件

定义函数FILE * fopen(const char *path,const char *mode);

其中const char *path为文件的打开路径及文件名。

const char *mode为以下几种模式:

R:打开只读文件,该文件必须存在。

r+:打开可读写的文件,该文件必须存在。

w:打开只读文件,若文件存在则文件长度清0,即该文件内容会消失;若文件不存在则建立该文件。

w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失;若文件不存在则建立该文件。

a:以附加方式打开只写文件,若文件不存在,则会建立该文件;若文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

a+:以附加方式打开可读写文件,若文件不存在,则建立该文件;若文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

 

fclose关闭文件

定义函数int fclose(FILE* stream);

若关闭成功则返回0,有错误返回EOF并把错误代码存到errno

 

fread从文件中读取数据

定义函数:size_ t fread(void *ptr,size_t size,size_t nmemb,FILE * stream)

其中stream 为已打开的文件指针,ptr为存放读取数据的空间,size_t nmemb为读取的字符数

例:

#include<stdio.h>
#define num 3
struct test
{
    char name[20];
    int size;
}a[num];
int main()
{
    FILE * stream;
    int i;
    stream=fopen("/root/Desktop/data","r");
    fread(a,sizeof(struct tesr),num,stream);
    fclose(stream);
    for(i=0;i<num;i++)
    {
        printf("%s %d",a[i].name,a[i].size);
    }
    return 0;
}

fwrite用于将数据写入文件

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

其中stream 为已打开的文件指针,ptr为欲写入的数据地址,size_t nmemb为写入的字符数

#include<stdio.h>
#define num 3
struct test
{
    char name[20];
    int size;
}a[num];
int main()
{
    FILE * stream;
    int i;
    for(i=0;i<num;i++)
    {
        a.name="a";
        a.size=i;  
    }
    stream=fopen("/root/Desktop/data","w");
    fwrite(a,sizeof(struct tesr),num,stream);
    fclose(stream);
    return 0;
}

 

fseek用于移动文件的读写位置(我理解为光标在文件的位置)

定义函数:int fseek(FILE * stream,long offset ,int whence)

其中stream 为已打开的文件指针,offset为根据参数whence来移动读写的位置数。

参数whence为下列几种:

SEEK_SET从距文件开头offset位移量为新的读写位置。

SEEK_CUR以目前的读写位置往后增加offset个位移量。

SEEK_END将读写位置指向文件尾后再增加offset个位移量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值