当用户程序运行时,系统自动运行打开了3个流
stdin:标准输入流,向键盘输入的内容
stdout:标准输出流,向当前终端输出内容
stdeer:标准错误流,向当前终端输出错误信息
mode取值:
r:文件存在继续写
w:把之前的清空了写进去
a:接到前面写
#include <stdio.h>
#include <string.h>
#include <errno.h>
#define N 64
int main(int argc, char *argv[])
{
int n;
char buf[N];
FILE *fps,*fpd;//定义流指针
//检查参数
if(argc<3)
{
printf("Usage:%s<src_file><dest_file>\n",argv[0]);
return -1;
}
//打开原文件
if((fps=fopen(argv[1],"r"))==NULL)//fopen(文件路径,文件打开方式)
{
fprintf(stderr,"fail to open%s:%s\n",argv[0],strerror(errno));//strerror(错误码)
fclose(fps);//fclose(已打开的指针流)
return -1;
}
//打开目标文件
if((fpd=fopen(argv[2],"w"))==NULL)
{
fprintf(stderr,"fail to fopen %s:%s\n",argv[2],strerror(errno));//fprint(输出哪里,错的东西)
fclose(fpd);
return -1;
}
//循环读写文件
while((n=fread(buf,1,N,fps))>=0)//从fps文件中读N个数,每个数大小为1,读了放到buf里。
{
fwrite(buf,1,N,fpd);//将buf中的大小为1的N个数写入fpd
}
//关闭文件
fclose(fps);
fclose(fpd);
return 0;
}