1> 使用fread和fwrite完成两个文件的拷贝
#include<myhead.h>
int main(int argc, const char *argv[])
{
FILE*fp1=NULL;
FILE*fp2=NULL;
if((fp1=fopen("./ggb.bmp","r+"))==NULL)
{
perror("fopen error");
return -1;
}
if((fp2=fopen("./blueboon.bmp","w+"))==NULL)
{
perror("fopen error");
return -1;
}
// fseek(fp1,54,SEEK_SET);
char buf[5];
while(1)
{
int rew=fread(buf,1,sizeof(buf),fp1);
if(rew<=0)
{
break;
}
fwrite(buf,rew,1,fp2);
}
puts("拷贝成功");
fclose(fp1);
fclose(fp2);
return 0;
}
2> 使用read、write完成两个文件的拷贝
#include<myhead.h>
int main(int argc, const char *argv[])
{
if(argc!=3)
{
puts("enter error");
return -1;
}
int fd1=-1,fd2=-1;
if((fd2=open(argv[2],O_WRONLY|O_CREAT|\
O_TRUNC,0664))==-1)
{
perror("open error");
return -1;
}
if((fd1=open(argv[1],O_RDONLY))==-1)
{
perror("open error");
return -1;
}
char buf[5];
while(1)
{
int rew=read(fd1,buf,sizeof(buf));
if(rew<=0)
{
break;
}
write(fd2,buf,rew);
}
puts("拷贝完成");
close(fd1);
close(fd2);
return 0;
}
3> 将时间在文件中跑起来
#include<myhead.h>
/*int do_num()
{
while(1)
{
int rew=fread(buf,1,sizeof(buf),fp);
if(rew<=0)
break;
if(buf[strlen(buf)]=='\n')
num++;
}
return num;
}*/
int main(int argc, const char *argv[])
{
char buf[20]="";
char temp;
while(1)
{
FILE*fp=NULL;
if((fp=fopen("./time.txt","a+"))==NULL)
{
perror("fopen error");
return -1;
}
int num=0;
while(1)
{
int rew=fread(&temp,1,1,fp);
if(rew<=0)
break;
if(temp=='\n')
num++;
}
// printf("%d\n",num);
num++;
time_t t=time(NULL);
struct tm*m=localtime(&t);
sprintf(buf,"%d、%02d:%02d:%02d\n",num,m->tm_hour,\
m->tm_min,m->tm_sec);
//fwrite(buf,1,sizeof(buf),fp);
fputs(buf,fp);
fputs(buf,stdout);
// fwrite(buf,1,sizeof(buf),stdout);
while(1)
{
int rew=fread(&temp,1,1,fp);
if(rew<=0)
break;
if(temp=='\n')
num++;
}
sleep(1);
fclose(fp);
}
return 0;
}
4>思维导图