IO进程-day2

1、使用fread和和fwrite完成两个文件的拷贝

#include
int main(int argc, const char *argv[])
{
	FILE *fp1=NULL;
	if((fp1=fopen("./yumou.bmp","r"))==NULL)
	{
		perror("fopen error");
		return -1;
	}
	FILE *fp2=NULL;
	if((fp2=fopen("./b1.bmp","w"))==NULL)
	{
		perror("fopen error");
		return -1;
	}
	
	char ptr[1024]="";
	int res=0;
	while((res=fread(ptr,1,sizeof(ptr),fp1))!=0)
		fwrite(ptr,1,res,fp2);
	//关闭文件
	fclose(fp1);
	fclose(fp2);
	return 0;
}

IO进程-day2_第1张图片IO进程-day2_第2张图片

2、使用read、write完成两个文件的拷贝

#include
 
int main(int argc, char const *argv[])
{
 
    int fd1=-1;
    int fd2=-1;
    if((fd1=open("./yumou.bmp",O_RDONLY))==-1)
	{
		perror("open error");
		return -1;
	}
    if((fd2=open("./fd.bmp",O_WRONLY|O_CREAT|O_TRUNC,0664))==-1)
	{
		perror("open error");
		return -1;
	}
    char buf[1024];
    int res=0;
    while((res = read(fd1,buf,sizeof(buf)-1))!= 0)
	{
		write(fd2,buf,res);
        memset(buf,0,sizeof(buf));
	}
    close(fd1);
    close(fd2);
    return 0;
}

IO进程-day2_第3张图片IO进程-day2_第4张图片

3、将时间在文件中跑起来

#include

int main(int argc, const char *argv[])
{
	FILE *fp=NULL;
	if((fp=fopen("test123.txt","a+"))==NULL)
	{
		perror("fopen error");
		return -1;
	}
	//存储格式字符串的容器
	char buf[128]=" ";
	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("buf=%s\n",buf);
		fputs(buf,fp);//输入
		fflush(fp);//刷新缓冲区
			
	}
	fclose(fp);
	return 0;
}

IO进程-day2_第5张图片

4、思维导图

IO进程-day2_第6张图片

你可能感兴趣的:(linux,算法,运维)