fwrite fread与流定位相关接口
fgets与gets的区别
fgets:
从指定的已打开文件中读取最多一行数据(遇到n停止读取)
fgets保留\n字符并字符串末尾添加"\0"
fgets最多读取size-1个字符,最后一个位置存放"\0"
gets:
指定从终端设备读取数据
gets会将终端读到的"\n"字符替换成"\0"
gets是危险的,因为在读取时,没有大小的限制,可能造成内存越界
size_t fwrite(const void *ptr, size_t size,size_t nmeml,FILE *stream);
功能:向文件中写入nmemb个大小是size的数据到文件中
参数:
pt:要写入的数据的首地址
size:每个元素的字节数
nmemb:要写入的元素个数
stream:要写入的文件流指针
返回值:
成功:返回实际写入的元素个数
size t fread(void *ptr,size_t size,size_t mmemb,FILE *stream);
功能:从文件中读取mmemb个大小是size的元素
参数:
ptr:存储读取到数据的首地址
size:每个元素的大小
nmemb:希望从文件中读取的元素个数
stream:要读的文件流指针
返回值:
成功:实际读到的元素个数
读到文件末尾:0
fseek: int fseek(FILE *stream, long offset,
int whence)
功能:实现文件流重新定位
参数:
stream:需要定位的文件流指针;
offset:偏移量;whence:定位的相对位置
SEEK_SET:从头进行偏移
SEET_CUR:从当前位置开始偏移
SEET_END:从文件末尾偏移
返回值:
成功:返回当前的偏移量;
失败:-1
ftell:
long ftell(FILE *stream);
功能:获取流的当前位置到文开头的偏移量
参数:
stream:文件流
返回:
偏移量:byte
rewind: void rewind(FILE *stream)
功能:流复位函数 (复位到开头);等价于
fseek(fp, O, SEEK_SET);