Linux学习笔记之---标准文件库编程

本文介绍了标准文件编程库的功能,包括文件操作如创建、打开、关闭等,字符及行的输入输出,字符串处理,变长参数函数定义,文件读写位置定位及状态检查等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2:标准文件编程库
    2.1:    创建,打开,关闭,删除函数族
            #include <stdio.h>
            FILE *fopen (const char *filename, cnost char *type)
            FILE *freopen (const char *filename, const char*type, FILE *stream)
            (常用于输入输出重定向)
            int fclose (FILE *stream)  成功返回0,否则EOF
            int remove (const char *filename) 删除文件或目录,成功返回0,否则其它值
            int rename (const char *oldname, const char *newname)成功返回0,否则-1
    2.2:    字符输入函数族         
            #include <stdio.h>
            int getc(FILE *stream);
            int getchar(void);
            int fgetc(FILE *stream);
            返回值均为int型:
            ·····················
            int c;
            c = getc(FILENAME);
            if (c == EOF)
            ·····················
    2.3:    字符输出函数族
            #include <stdio.h>
            int putc(int c,FILE *stream); 将c写入stream
            int putchar(int c);
            int fputc(int c,FILE *stream);将c写入stream
    2.4:    行输入函数族
            #include <stdio.h>
            char *gets(char *s);
            char *fgets(char *s, int n, FILE *stream);
            (从stream中读取n个数到s,成功时返回s)
            ·····························
            char s[1024];
            fgets(s, sizeof(s), stream);
            ·····························
    2.5:    行输出函数族
            #include <stdio.h>
            int puts(const char *s)
            int fputs(const char *s, FILE *stream)
            (把s输出到stram中,不输出结束符,不自动添加换行符)
    2.6:    #include <string.h>
            char *strstr(char *s1, char *s2)查找s2在s1中第一次出现的位置
    2.7:    块读写函数
            #include <stdio.h>
            size_t fread(void *ptr,size_t size,
                      size_t nitems,FILE *stream);
            (从stream中读入nitems个数据项到ptr,每个数据项有size大小)
            size_t fwrite(const void *ptr, size_t size,
                       size_t nitems, FILE *stream);
    2.8:    变长参数函数的定义(例如计算输入不定个数整数的和)
            #include <stdarg.h>
            int mysum(int i, ...)               //i为变量的个数
            {                                   
               int r = 0, j = 0;
               va_list pvar;                    //申明变量pvar,可访问参数
               va_start(pvar, i);               //i为省略号前一个参数
               for (j = 0; j < i; j++)
               {
                   r += va_arg(pvar, int);      //获取参数中的值
               }
               va_end(pvar);                    //关闭对参数列表的访问
               return (r);
            }
    2.9:    文件读写位置的定位
            #include <stdio.h>
            void rewind(FILE *stream);
            long int ftell(FILE *stream);
            int fseek(FILE *stream, long int offset, int whence);
            (whence取值:
            SEEK_SET   -    文件头开始定位
            SEEK_CUR   -    当前位置开始定位
            SEEK_END   -    文件尾开始定位
            offset为偏移量,成功返回0.
            rewind将文件定位于开始处,ftell返回当前访问位置)
    2.10:   文件状态函数
            #include <stdio.h>
            int ferror(FILE *stream);
            int feof(FILE *stream);
            void clearerr(FILE *stream);
            当文件读写发生错误时调用ferror返回非0.
            当文件结束时调用feof返回非0.
            clearerr清除错误和结束标志.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值