fopen与fseek函数
说明:只供学习交流,装载请注明出处
fopen函数
头文件 |
#include <stdio.h> |
||
函数原型 |
FILE *fopen(const char *path, const char *mode) |
||
返回值 |
成功 |
失败 |
是否设置errno |
返回文件指针 |
NULL |
是 |
参数说明:
path:欲打开的文件路径与文件名。
mode:打开方式,可以取如下的值:
“r”:以只读方式打开文件。
“r+“:以可读可写方式打开文件。
“w“:以只写方式打开文件,若文件不存在则建立该文件。
“w+“:以可读可写方式打开文件,若文件不存在则建立该文件。
“a“:以追加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
“a+“:以追加的方式打开可读写的方式。若文件不存在,则会建立该文件,文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
实例:
#include <stdio.h> int main(void) { FILE *fp = NULL; fp = fopen("new", "a+"); if ( fp == NULL ) { printf("Open Failure!!! "); return (1); } fclose(fp); return (0); }
fseek函数:
函数功能:移动文件流的读写位置。
头文件 |
#include <stdio.h> |
||
函数原型 |
int fseek(FILE *stream, long offset, int origin); |
||
返回值 |
成功 |
失败 |
是否设置errno |
0 |
-1 |
是 |
参数说明:
stream:文件指针。
offset:偏移量,正数表示正向偏移,负数表示负向偏移。
origin:设定从文件的哪里开始偏移,可能取值为:
SEEK_SET:文件开头。
SEEK_CUR:当前位置。
SEEK_END:文件结尾。
其中SEEK_SET,SEEK_CUR和SEEK_END依次为0,1,2.
fseek一般和ftell函数配合使用,ftell函数返回当前的位置距文件头的偏移字节数。
实例:
#include <stdio.h> long filesize(FILE *stream) { long curpos; long length; curpos = ftell(stream); fseek(stream, 0L, SEEK_END); length = ftell(stream); fseek(stream, curpos, SEEK_SET); return (length); } int main(void) { FILE *stream = NULL; stream = fopen("MYFILE.TXT", "w+"); fprintf(stream, "This is a test"); printf("Filesize of MYFILE.TXT is %ld bytes ", filesize(stream)); fclose(stream); return (0); } 运行结果: [root@localhost test]# ./fseek Filesize of MYFILE.TXT is 14 bytes [root@localhost test]#
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。