作业1:用fread和fwrite拷贝图片
#include<myhead.h>
int main(int argc, const char *argv[])
{
FILE *w=NULL;
FILE *r=NULL; //定义操作文件句柄
if((r=fopen("./craper.bmp","r"))==NULL) //以只读形式打开文件
{
perror("error");
return -1;
}
if((w=fopen("./craper1.bmp","w"))==NULL) //以只写形式打开文件
{
perror("error");
return -1;
}
while(1)
{
char ptr[256]=""; // 定义存放图片信息的数组
int res; //res计算读取的项数
while (1) //遍历图片信息
{
res=fread(ptr,sizeof(ptr),1,r);
fwrite(ptr,sizeof(ptr),res,w);
if(feof(r)) // 读取结束跳出循环
{
break;
}
}
fclose(r);fclose(w); //关闭文件
}
return 0;
}
作业2:用read和write拷贝图片
#include<myhead.h>
int main(int argc, const char *argv[])
{
//定义文件描述符变量
int r=-1;
int w=-1;
if((r=open("./elden.bmp",O_RDONLY))==-1) //以只读形式打开目标文件
{
perror("open error");
return -1;
}
if((w=open("./elden1.bmp",O_WRONLY|O_CREAT|O_TRUNC))==-1)//以只写形式打开拷贝文件
{
perror("open error");
return -1;
}
char elden[128]=""; //定义存放图像信息的数组
int res=0;
while(1)
{
res=read(r,elden,sizeof(elden)); //res计写入项数
if(res==0)
{
break;
}
write(w,elden,sizeof(elden));
}
close(r);close(w); // 关闭文件
return 0;
}
作业3:将时间在文件中跑起来
#include<myhead.h>
int main(int argc, const char *argv[])
{
int fd=-1;
if((fd=open("./time.txt",O_RDWR|O_APPEND|O_CREAT,0777))==-1) //创建文本文件
{
perror("open error");
return -1;
}
char buf[100]=""; //存放时间数据
char a[100]="";
int line=1;
while(1) //遍历文件
{
int res=read(fd,a,sizeof(a));
if(res==0)
{
break;
}else if(a[strlen(a)-1]=='\n') //到'\n'时行数自加1
{
line++;
}
}
while(1)
{
time_t sysTime=time(NULL);
struct tm *t=localtime(&sysTime);
snprintf(buf,sizeof(buf),"%d %2d:%2d:%2d\n" //显示时间文本
,line++,t->tm_hour,t->tm_min,t->tm_sec);
write(fd,buf,sizeof(buf));
printf("%s",buf);
sleep(1);
}
close(fd);
return 0;
}