三个 C 语言的函数/类型
size_t
size_t 是无符号整型,在<stddef.h>标准头中可以找到定义,真实面目是long unsigned int
类型。
1 |
|
fopen
fopen() 位于<stdio.h>标准头中,用来打开文件
1 | FILE *fopen(char *filename, char *mode); |
fopen() 会获取文件信息,包括文件名、文件状态、当前读写位置等,并将这些信息保存到一个 FILE 类型的结构体变量中,然后将该变量的地址返回。
cat /proc/cpuinfo
是linux系统查看cpu信息的命令
FILE* 是<stdio.h>内的一个结构体,用来保存文件信息。
1 |
|
打开文件出错时,fopen会返回一个空指针,NULL
fclose()
fclose()用来关闭文件,int fclose(FILE* fp)
,文件正常关闭时,返回0,返回非零表示有错误发生
feof
位于<stdio.h>, 使用方法: int feof(FILE *fp);
,函数feof只用于检测流文件,当文件内部位置指针指向文件结束时,并未立即置位 FILE 结构中的文件结束标记,只有再执行一次读文件操作,才会置位结束标志,此后调用 feof 才会返回为真。
若成功则返回非零值,失败返回0值,用于判断是否到达了文件末尾。
fgets
位于<stdio.h>中,用法是char *fgets(char *s, int size, FILE *stream);
它的功能是从 stream 流中读取 size 个字符存储到字符指针变量 s 所指向的内存空间。它的返回值是一个指针,指向字符串中第一个字符的地址。
fget() 函数中的 size 如果小于字符串的长度,那么字符串将会被截取;如果 size 大于字符串的长度则多余的部分系统会自动用 ‘\0’ 填充。
但是需要注意的是,如果输入的字符串长度没有超过 n–1,那么系统会将最后输入的换行符 ‘\n’ 保存进来,保存的位置是紧跟输入的字符,然后剩余的空间都用 ‘\0’ 填充。所以此时输出该字符串时 printf 中就不需要加换行符 ‘\n’ 了,因为字符串中已经有了。