linux—文件编程(库函数版)

  1. c库函数的文件操作独立于具体的操作系统平台,不管是在DOS、Windows、Linux还是在vxworks中都是这些函数;
  2. fopen:创建和打开:

        FILE * fopen(const char *filename,const char*mode)

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
    FILE *fp;
    FILE *fp2;
    char ch;
    if(fp = fopen("./practise1.c","r")) == NULL);
    {
        printf("cannot open file,strike any key essit!");
        perror("error");
        exit(1);
    }
    if(fp2 = fopen("./copy.c","r")) == NULL);
    {
        printf("cannot open file,strike any key essit!");
        perror("error");
        exit(1);
    }
    ch = fegtc(fp);
    while(ch != EOF)
    {
        putchar(ch);    //输出到屏幕
        fputc(ch,fp2);    //将字符写入到fp2中;
        ch = fgetc(fp);    
    }
    fclose(fp);
    return 0;
}

        filename:打开的文件名(包含路径,缺省为当前路径);

        mode:打开模式,共有7中模式:

mode含义
“r”只读,文件必须存在;
“w”只写,如果文件不存在则创建,如果文件已存在则先把文件长度截断为0(即先将文件清空),再往里写内容,也就是替换原来的文件内容;
“r+”允许读和写,文件必须已存在;
“w+”允许读和写,如果文件不存在则创建,若存在则先将文件清空再重写写内容;
“a”只能在文件末尾追加数据,如果文件不存在则创建;
“a+”允许读和追加数据,如果文件不存在则创建;
“b”

用于区分二进制文件和文本文件(DOS、Windows);

因为linux不区分二进制文件和文本文件,所以b基本不用;

3. fread:读

 size_t  fread(void *ptr, size_t size, size_t n,FILE *stream)

从stream指向的文件中读取n个字段,每字段为size字节,并将读取的数据放入ptr所指的字符数组中;函数返回值是已读取的字段数;(从后向前

double name[10];
int ret;
ret = fread(name,sizeof(double),10,fp);
//调用函数将fp文件中10个double值复制到name数组中;

4.fwrite:写

size_t fwrite(const void *ptr, size_t size, size_t n,FILE *stream)

从缓冲区ptr(数组)中把n个字段写到stream指向的文件中,每个字段长为size个字节,返回值是实际写入的字段数;(从前向后

char name[40];
fwrite (name,1,25,fp);
//从name数组中中读取25个字节到fp指定的文件中;

5. fgetc:读字符

int fgetc(FILE *stream) 

从指定的文件中读一个字符,程序详见第一个程序段;

6. fputc:写字符

int fputc(int c,FILE *stream)

向指定的文件中写入一个字符,程序详见第一个程序段;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值