本文主要是介绍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!!!\n");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\n", filesize(stream));fclose(stream);return (0);
}运行结果:
[root@localhost test]# ./fseek
Filesize of MYFILE.TXT is 14 bytes
[root@localhost test]#
这篇关于fopen与fseek函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!