您的位置:首页 > 编程语言

库函数方式文件编程

2015-04-19 07:42 232 查看

1.核心理论

库函数:基于c函数库的文件编程是独立于具体的操作系统平台的,不管是在windows下还是linux下,都是使用这些函数,使用库函数进行程序设计可提高程序的可移植性。

:对于标准的c函数库,它们的操作都是围绕流来进行的。流是一个抽象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存或者网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的的流,这时候你就可以想象数据好像在其中“流”动一样。

文件指针:在系统调用方式实现文件访问中,使用文件描述符来指向一个文件。在库函数方式的文件访问中,使用FILE类型来表示一个打开的文件,这个类型中包含了管理文件流的信息。而指向该类型的指针FILE*则被称之为文件指针。

2.函数学习

打开文件
函数名:fopen
函数原型:FILE *fopen(const char *path, const char *mode);
函数功能:打开文件
头文件:<stdio.h>
返回值:成功:文件指针,  失败:NULL
参数说明:path:含路径的文件名    mode:文件打开模式

关闭文件
函数名:fclose
函数原型:int fclose(FILE *fp);
函数功能:关闭文件
头文件: <stdio.h>
返回值:成功:0   失败:EOF
参数说明:fp:文件指针

读文件
函数名:fread
函数原型:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *steam);
函数功能:从文件中读取数据
头文件: <stdio
4000
.h>
返回值:成功:读取到的数据量   失败:0
参数说明:stream:指向要读取的文件  ptr:指向要保存的位置    memb:读取的数据块数   size:每块数据的大小

写文件
函数名:fwrite
函数原型:size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
函数功能:向文件中写入数据
头文件:<stdio.h>
返回值:成功:返回成功写入数据量    失败:0
参数说明:stream:要写入数据的文件指针   ptr:存放要写入文件的数据    nmemb:要写入的数据块数    size:每块数据的大小   

文件分定位
函数名:fseek
函数原型:int fseek(FILE *stream, long offset, int whence);
函数功能:重新定位文件
头文件: <stdio.h>
返回值:成功:0  失败:-1
参数说明:stream:文件指针  offset:文件偏移  whence:从哪个地方开始偏移

3.综合实例

/******************************************************************
* 程序名:filecp.c
* 功能:文件复制
******************************************************************/

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
FILE *fp_src, *fp_des;
int num;
char buff[128];

if(argc != 3)
{
printf("the format must be:cp file_src file_des\n");
exit(EXIT_FAILURE);
}
if((fp_src=fopen(argv[1],"r"))==NULL)
{
perror("fopen");
exit(EXIT_FAILURE);
}
if((fp_des=fopen(argv[2],"w"))==NULL)
{
perror("fopen");
exit(EXIT_FAILURE);
}
while((num=fread(buff,1,128,fp_src))>0)
{
fwrite(buff,1,num,fp_des);
}
fclose(fp_src);
fclose(fp_des);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息