linux标准IO

目录

一、打开文件:fopen

 二、 关闭文件:fclose

三、一次读/写一个字符(fgetc,getc,getchar,fputc,putc,putchar)

四、一次一行字符(fgets,ges,fputs,puts)

五、一次一块字符------*(fread,fwrite)


        
       

一、打开文件:fopen


        #include <stdio.h>
        FILE *fopen(const char *pathname, const char *mode);
        功能:
                打开文件
        参数:
                pathname:文件路径(有路径的文件名)


                mode:打开的方式:
                        方式        权限        文件要求                                          写的形式
                        r            只读          文件必须已存在
                        r+          可读可写   文件必须已存在                                清空模式
                        w           只写          文件可以不存在,若不存在则创建    清空模式
                        w+         可读可写   文件可以不存在,若不存在则创建    清空模式
                        a            只写          文件可以不存在,若不存在则创建    追加模式
                        a+          可读可写   文件可以不存在,若不存在则创建    追加模式
        返回值:
                    成功:流(文件指针)
                    失败:NULL,返回错误码
                    
                    


       二、 关闭文件:fclose


        #include <stdio.h>
        int fclose(FILE *stream);
        功能:
                关闭文件    
        参数:
                流stream
        返回值:成功返回0
                失败返回错误码

       
        流的读写


      三、一次读/写一个字符(fgetc,getc,getchar,fputc,putc,putchar)


            读取:
                fgetc
            man fgetc
        #include <stdio.h>
        int fgetc(FILE *stream);
        功能:
                根据相应的文件的流,读取一个字符
        参数:
                流stream
        返回值:
                成功返回读取到的字符
                失败返回错误码
                
            宏:getc
                man getc
        #include <stdio.h>
        int getc(FILE *stream);
        getc是fgetc的宏定义
        最大的区别是fgetc是函数,getc是宏。
        getc是fgetc通过宏实现的,调用的时候需要注意:
                                参数stream不能是有副作用的表达式
                                
        功能参数返回值都和fgetc是一样的
        #define getc fgetc
        #define wyz  fgetc
    **************************************************************
    getchar();
    #include <stdio.h>
    int getchar(void);
    功能:
            在标准输入读取一个字符
    参数:
                空
    返回值:
            成功读取一个字符
            失败返回错误码
    一般getchat 一般用于清理垃圾字符
    
    
    写的操作(一次一个字符)
        fputc();
        #include <stdio.h>
        int fputc(int c, FILE *stream);
        功能:
                    对相对于的流写入一个字符
        参数:
                    c:需要写入的字符
                    stream:流
        返回值:
                成功:写入的字符
                失败:返回错误码
        ************************************        
                
        putc();
        man putc
        #include <stdio.h>
        int putc(int c, FILE *stream);
        putc是fputc的宏,用法和fputc一模一样
        #define putc fputc
        *****************************************
        putchar
        man putchar
        #include <stdio.h>
        int putchar(int c);
        功能:
                向标准输出写一个字符
        参数:
                c:需要写入的字符
        返回值:
                成功:写入的字符
                失败:返回错误码


        
     四、一次一行字符(fgets,ges,fputs,puts)


        读取:
            fgets();
            man fgets
            #include <stdio.h>
            char *fgets(char *s, int size, FILE *stream);
            功能:
                    对相应的文件读取一行数据,如遇到“\n”则停止读取
                    
            参数:
                    s:读出一行数据放置的地方,char buf[128]
                    size:读取数据的最大的限度,读一次读多少个字节,size-1,‘\0’
                    stream:流
            返回值:
                    成功:读出数据存放的地址
                    失败:NULL并返回错误码
                    
            ************************************
            gets();
            #include <stdio.h>
            char *gets(char *s);
            为了安全,gets少用,因为其没有指定输入字符的大小,
            限制输入缓冲区的大小,如果输入的字符比定义的数组长度大的话,
            容易发生内存越界,堆栈溢出。
            功能:
                    在标准输入读取一行数据
                    
            参数:
                    s:读出一行数据放置的地方,char buf[128]

            返回值:
                    成功:读出数据存放的地址
                    失败:NULL并返回错误码
                    
                    
        写的操作(一次一行字符)
                fputs
                #include <stdio.h>
                int fputs(const char *s, FILE *stream);
                功能:
                        写入一行数据到相应的文件中
                参数:
                        s:写入一行数据放置的地方,char buf[128]
                        stream:流
                返回值:
                        成功返回非负数
                        失败返回错误码
                
        *************************************
        puts
        #include <stdio.h>
        int puts(const char *s);
        功能:
                向标准输出写一行字符
        参数:
                s:写入一行数据放置的地方,char buf[128]
        返回值:
                成功返回非负数
                失败返回错误码


      五、一次一块字符------*(fread,fwrite)


        读取(一次读取一块字符)
        fread
        man fread
        #include <stdio.h>
        size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
        功能:
                在相应的流中读取一块字符
        参数:
                ptr:读取数据所放置的位置
                size:读取一次要读多少个字节
                nmemb:运行一次函数,读取多少次数据
                stream:流
        返回值:
                成功返回:读取的次数
                失败返回:0
        
        
        写入(一次写入一块字符)
        fwrite
        #include <stdio.h>
        size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);
        功能:
                写入一块数据到相应的文件中
        参数:
                ptr:写入数据所放置的位置
                size:写入一次要写多少个字节
                nmemb:运行一次函数,写入多少次数据
                stream:流
        返回值:
                成功返回:写入的次数
                失败返回:0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值