热度 21
2015-3-5 22:37
935 次阅读|
0 个评论
库函数方式文件编程的优点:基于C函数库的文件编程是独立于具体的操作系统的,不管是在windows,linux,还是其他的操作系统中,都是使用这些函数。使用库函数进行程序设计可以提高程序的可移植性。 流:对于标准的C函数库,他们的操作都是围绕流来进行的。流是一个抽象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。 文件指针:在系统调用方式实现的文件访问中,使用文件描述符(一个非负整数)来指向一个文件。在库函数方式的文件访问中,使用FILE类型来表示一个打开的文件,这个类型中包含了管理文件流的信息。而指向该类型的指针FILE * 则被称之为文件指针。 3.1 打开文件 3.1.2 函数原形 FILE *fopen(const char *path, const char *mode); 3.1.3 函数功能 打开文件 3.1.4 所属头文件 3.1.5 返回值 成功:返回FILE指针 失败:返回NULL 3.1.6 参数说明 path:待打开的文件的路径。 mode:文件打开模式 3.2 关闭文件 3.2.1 函数名 fclose 3.2.2 函数原形 int fclose(FILE *fp); 3.2.3 函数功能 关闭打开的文件 3.2.4 所属头文件 3.2.5 返回值 成功:返回0 失败:返回EOF 3.2.6 参数说明 fp:待关闭的文件的指针 3.3 读文件 3.3.1 函数名 fread 3.3.2 函数原形 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 3.3.3 函数功能 从文件中读取数据 3.3.4 所属头文件 3.3.5 返回值 成功:返回读取到的数据量 失败:返回0 3.3.6 参数说明 ptr:读取到的数据存放的位置 size:读取的每一份数据的大小 nmemb:需要读取nmemb份数据 stream:待读取的数据流 3.4 写文件 3.4.1 函数名 fwrite 3.4.2 函数原形 size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); 3.4.3 函数功能 向文件中写入数据 3.4.4 所属头文件 3.4.5 返回值 成功:返回写入的数据量 失败:返回0 3.4.6 参数说明 ptr:待写入的数据 size:写入的数据块的大小 nmemb:写入的数据块的数量 stream:要写入的文件的数据流 3.5 定位文件 3.5.1 函数名 fseek 3.5.2 函数原形 int fseek(FILE *stream, long offset, int whence); 3.5.3 函数功能 设置文件的位置指针 3.5.4 所属头文件 3.5.5 返回值 成功:0 失败:-1 3.5.6 参数说明 stream:要定位的文件流 offset:偏移量 whence: 设置起始的文件指针位置 小实验:创建一个txt文件,且打印出写进该txt文件中的数据。 #include int main() { char *buf = "1234567890"; char buff_read ; FILE *fp; fp = fopen("/home/copy_commander/num.txt", "a+"); fwrite(buf, 1, 10, fp); fseek(fp, 0, SEEK_SET); fread(buff_read, 1, 10, fp); buff_read = "\0"; printf("%s\n", buff_read); fclose(fp); return 0; }