要求创建一个time.txt,存储内容格式如下
[1] 2022-07-28 17:15:06
[2] 2022-07-28 17:15:07
[3] 2022-07-28 17:15:08
ctrl + c退出程序,过一会儿之后重新启动程序
#include<stdio.h>
#include<time.h>
#include<unistd.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
FILE *fp = fopen("time.txt","r");
int line=1;
char n;
while((n=getc(fp))!=-1)
{
if(n=='\n')
line++;
}
fclose(fp);
fp = fopen("time.txt","a+");
time_t t;
struct tm *p = NULL;
while(1)
{
t = time(NULL);
p = localtime(&t);
fprintf(fp,"%d %d-%02d-%02d %02d:%02d:%02d\n",line,p->tm_year+1900,\
p->tm_mon+1,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec);
fflush(fp);
sleep(1);
line++;
}
fclose(fp);
return 0;
}
演示结果:
文件IO拷贝一张图片:
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int fp = open("./pp.png",O_RDONLY);
if(fp<0)
{
perror("open1");
return -1;
}
int fq = open("./111",O_WRONLY|O_TRUNC|O_CREAT,0664);
if(fq<0)
{
perror("open2");
return -1;
}
char arr[20];ssize_t res;
while(1)
{
bzero(arr,sizeof(arr));
res=read(fp,arr,sizeof(arr)-1);
if(res==0)
break;
write(fq,arr,res);
}
close(fp);
close(fq);
return 0;
}
用标准IO拷贝一张图片
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
FILE*fp = fopen("./pp.png","r");
FILE*fq = fopen("222","w");
if(NULL==fp)
{
perror("open1");
return -1;
}
if(NULL==fq)
{
perror("open2");
return -1;
}
char arr[20];
size_t res;
while(1)
{
bzero(arr,sizeof(arr));
res = fread(arr,1,sizeof(arr)-1,fp);
if(res==0)
break;
fwrite(arr,1,res,fq);
}
fclose(fp);
fclose(fq);
return 0;
}
两种方式复制得到的图片如图: