1、使用fread和fwrite完成两个文件的拷贝
#include<myhead.h>
int main(int argc, const char *argv[])
{
//只读打开文件
FILE *fp =NULL;
if((fp=fopen("./11.bmp","rb"))==NULL)
{
perror("fopen error");
return -1;
}
//只写打开文件
FILE *fd =NULL;
if((fd=fopen("./77.bmp","wb"))==NULL)
{
perror("fopen error");
return -1;
}
char rbuf[1024]="";
int res=0;
while((res=fread(rbuf,1,sizeof(rbuf),fp))!=0);
{
fwrite(rbuf,1,res,fd);
}
//关闭文件
fclose(fp);
fclose(fd);
return 0;
}
2、使用read、write完成两个文件的拷贝
#include<myhead.h>
int main(int argc, const char *argv[])
{
//定义文件描述符变量
int fp= -1;
if((fp=open("./11.bmp",O_RDONLY))== -1)
{
perror("open error");
return -1;
}
int fd=-1;
if((fd=open("./66.bmp",O_WRONLY|O_CREAT|O_TRUNC,0664))== -1)
{
perror("open error");
return -1;
}
char rbuf[1024]="";
int res=0;
while((res=read(fp,rbuf,sizeof(rbuf)-1))!=0)
{
write(fd,rbuf,res);
memset(rbuf,0,sizeof(rbuf));
}
//关闭文件
close(fp);
close(fd);
return 0;
}
3、将时间在文件中跑起来
#include <myhead.h>
int main(int argc, const char *argv[])
{
FILE *fp=NULL;
if((fp=fopen("test.txt","a+"))==NULL)
{
perror("fopen error");
return -1;
}
//存储格式字符串的容器
char buf[1024]=" ";
int i=0;//计数
while(1)
{
char *res=fgets(buf,sizeof(buf),fp);
if(res==NULL)
{
break;
}
i++;
}
int line=i+1;//开始行数
//定义一个时间类型的变量,存储秒数
time_t sys_time=0;
while(1)
{
//调用时间函数,获取秒数
sys_time=time(NULL);
//将秒数转变成时间结构体类型
struct tm *t=localtime(&sys_time);
//转换成字符串
sprintf(buf,"%d:%4d-%02d-%02d %02d:%02d:%02d\n",line++,\
t->tm_year+1900,t->tm_mon+1,t->tm_mday,\
t->tm_hour,t->tm_min,t->tm_sec);
sleep(1);
printf("%s\n",buf);
fputs(buf,fp);//输入
fflush(fp);//刷新缓冲区
}
fclose(fp);
return 0;
}
思维导图