question1
![在这里插入图片描述](https://img-blog.csdnimg.cn/c154fa1bb87a459b8dc2458eb514920d.png)
代码实现
#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
FILE *FP=fopen("time.txt","a+");
size_t t;
int count=0;
while(1)
{
time(&t);
struct tm *lt=NULL;
lt=localtime(&t);
if(NULL==FP)
{
perror("fopen");
return -1;
}
char c;
for(c=fgetc(FP);c!=EOF;c=fgetc(FP))
{
if(c == '\n')
{
count++;
}
}
fprintf(FP,"[%d] %d-%02d-%02d %d:%d:%d\n",count++,lt->tm_year+1900,lt->tm_mon+1,lt->tm_mday,lt->tm_hour,lt->tm_min,lt->tm_sec);
fflush(FP);
sleep(1);
}
fclose(FP);
return 0;
}
运行结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/cb61e2afab854dceb703f9132b8eb3d3.png)
要求文件IO拷贝一张图片;
代码实现
#include<stdio.h>
#include<sys/types.h>
#include<stdlib.h>
#include<sys/stat.h>
#include<string.h>
#include<unistd.h>
#include<fcntl.h>
int read_cp(char arr[],int lenth,int fp,int ep)
{
umask(0);
if(-1==fp)
{
perror("fopen");
return -1;
}
int res;
while(1)
{
bzero(arr,sizeof(arr));
if((res=read(fp,arr,sizeof(arr)-1))==0)
break;
write(ep,arr,res);
}
return 0;
}
int main(int argc, const char *argv[])
{
char arr[20];
int fp=open(argv[1],O_RDONLY);
int ep=open(argv[2],O_RDWR|O_APPEND|O_CREAT|O_TRUNC,0777);
read_cp(arr,sizeof(arr),fp,ep);
return 0;
}
运行结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/3a0af0dabf6b4f86849cd6e53c163f87.png)
附加:用标准IO拷贝一张图片
代码实现
#include<stdio.h>
#include<sys/types.h>
#include<stdlib.h>
#include<sys/stat.h>
#include<string.h>
#include<unistd.h>
#include<fcntl.h>
int fread_cp(char *arr,int lenth,FILE*fp,FILE*ep)
{
if(NULL==fp)
{
perror("fopen");
return -1;
}
size_t res;
while(1)
{
bzero(arr,sizeof(arr));
if((res=fread(arr,1,19,fp))==0)
break;
fwrite(arr,1,res,ep);
}
return 0;
}
int main(int argc, const char *argv[])
{
char arr[20];
FILE *fp=fopen(argv[1],"r");
FILE *ep=fopen(argv[2],"w+");
fread_cp(arr,sizeof(arr),fp,ep);
return 0;
}
运行结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/ecdb8b426d4644fc94089438806eb17f.png)