作业:1->fread\fwrite完成复制
#include<myhead.h>
int main(int argc, const char *argv[])
{
if(argc<3)
{
fputs("error\n",stderr);
return -1;
}
FILE *fp1=NULL;
FILE *fp2=NULL;
if((fp1=fopen(argv[1],"r"))==NULL)
{
perror("fopen1 error");
}
if((fp2=fopen(argv[2],"w"))==NULL)
{
perror("fopen error");
}
char buf[20]="";
int len=0;
while((len=fread(buf,1,sizeof(buf),fp1))>0)
{
fwrite(buf,1,len,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
2->
#include<myhead.h>
int main(int argc, const char *argv[])
{
FILE *fp=NULL;
if((fp=fopen("./gg.bmp","r+"))==NULL)
{
perror("open error");
return -1;
}
int img_size=0;
fseek(fp,2,SEEK_SET);
fread(&img_size,1,sizeof(img_size),fp);
printf("imag->size=%d\n",img_size);
fclose(fp);
return 0;
}
作业-》写入日志时间戳
#include<myhead.h>
int main(int argc, const char *argv[])
{
FILE *fp=NULL;
if((fp=fopen("./daily.txt","a+"))==NULL)
{
perror("open error");
return -1;
}
int count = 0;
char buf= 0;
//读取文件,记录行数
while(1)
{
//清空容器
buf=fgetc(fp);
if(buf == EOF)
{
break; //说明文件读取结束
}
if(buf=='\n')
{
//行数变化
count++;
}
}
while(1)
{
char temp[50]="";
time_t sys_time1,sys_time2;
time(&sys_time1);
while(1)
{
time(&sys_time2);
if(sys_time2-sys_time1>=1)
{
break;
}
}
count++;
struct tm *time_ptr=localtime(&sys_time2);
snprintf(temp,50,"%6d.%4d-%2d-%2d %2d:%2d:%2d\n",count,time_ptr->tm_year+1900,\
time_ptr->tm_mon+1,\
time_ptr->tm_mday,\
time_ptr->tm_hour,\
time_ptr->tm_min,\
time_ptr->tm_sec);
fprintf(fp,"%s",temp);
fflush(fp);
printf("%s\n",temp);
}
fclose(fp);
return 0;
}