C文件API函数

//<stdio.h> 中FILE结构体定义。
typedef struct _iobuf
{
    char *_ptr;         //当前缓冲区内容文件。
    int _cnt;           //缓冲区还有多少个字符。
    char *_base;        //缓冲区的起始地址。
    int flag;           //文件流的状态,是否错误或者结束。
    int _file;          //文件描述符。
    int _charbuf;       //双字节缓冲,缓冲2个字符。
    int _bufsize;       //缓冲区大小。
    char *_tmpfname;    //临时文件名。
} FILE;

FILE *fopen(char *filename, char *type); (+可读可写。a只写不读。)
    type对于文本文件有r,w,r+,w+,a,a+.
    type对于二进制文件有rb,wb,rb+,wb+,ab,ab+.

int fclose(FILE *stream);
int fflush(FILE *stream);    //将内存中文件缓冲区的数据强制更改到磁盘。
int fputs(char *string, FILE *stream);     //向文件中写入字符串。
char *fgets(char *string, int n, FILE *stream);     //从流中读取字符串。
int fprintf(FILE *stream, char *format[,argument,….]);     //将格式化字符串输出到一个流中。
int fscanf(FILE *stream, char *format[,argument,…]);     //从一个流中执行格式化字符串。
int feof(FILE *stream);     //检测流上的文件结束符。

int access(const char *filename, int amode); 确定文件或文件夹的访问权限。
    amode参数:
        (1)Linux–> unistd.h
            R_OK 读权限。
            W_OK 写权限。
            X_OK 读写权限。
            F_OK 文件是否存在。
        (2)Windows–> io.h
        文件夹 Windows下都可读写。一般用于判断Windows下文件夹是否存在。
            0 文件是否存在。
            2 是否可写。
            4 是否可读。
            6 是否可读写。
            是返回0,否返回-1;

按照内存块读取数据。(数组,结构体).返回值为成功操作的数量。
    int fread(void *ptr, int size, int nitems, FILE *stream); 从一个流中读取数据。读入的的数据存放地址,一个元素有多大,多少个元素,从哪儿读。
    int fwrite(void *ptr, int size, int nitems, FILE *stream); 写入数据到流中。源数据开始地址,一个元素有多大,多少个元素,向哪儿写.
    fread()与fwrite()都返回实际成功的个数。

//复制文件
char temp[1024] = {‘\0’};
while(fgets(temp,1024,in) != NULL)
{
    fputs(temp,out);
}

int sprintf(char *string, char *format, [,argument,…]);    // 将字符串打印入数组。
int sscanf(char *string, char *format[,argument,…]);     //从数组中读取格式化数据。
void perror(char *string);     //系统错误信息。
int ferror(FILE *stream);     //文件出错为0,否则为非0.
void clearerr(FILE *stream);     // 重置文件流的状态,清除错误信号。恢复正常。

void fseek(FILE *stream, long offset, int fromwhere);     //重定位流上的文件指针
文件指针,偏移量,起始点。
起始点:
        文件开始 0 SEEK_SET
        文件末尾 2 SEEK_END
        当前位置 1 SEEK_CUR
        偏移量 (-/+)offset可正可负。

void rewind(FILE *stream);     //将文件指针重新指向一个流的开头
long ftell(FILE *stram);     //成功返回当前文件指针距文件头多少个字节。否则,返回-1.
int remove(char *filename);     //删除一个文件成功返回0,失败会返回-1.
char *mktemp(char *template);     //建立唯一的文件
void setbuf(FILE *steam, char *buf);     // 把缓冲区与流相联
int setvbuf(FILE *stream, char *buf, int type, unsigned size);     //把缓冲区与流相关
int rename(char *oldname, char *newname);     //重命名文件或文件夹。不在同一个路径下是剪切操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值