#代码:
#include<stdio.h>
#include<stdlib.h>
#include<sys/stat.h>
#include<sys/types.h>
int main()
{
FILE *sourse,*backup;//输入流、输出流
char *s,ch[1024];
int netway;
s=(char *)malloc(sizeof(char));
printf("文件列表:\n");
netway=system("ls -l");
netway=system("echo 创建备份目录");
netway=system("mkdir -v -m 777 backup");
netway=system("echo 创建备份文件");
netway=system("touch des.txt");
netway=system("mv des.txt backup");
printf("\n输入将要备份的文件名:");
scanf("%s",s);
struct stat buf;
stat(s,&buf);
if((sourse=fopen(s,"r+"))==NULL)
{
printf("打开文件出错!\n");
exit(0);
}
else if(buf.st_size==0)
{
printf("文件为空!\n");
exit(0);
}
if(backup=fopen("backup/des.txt","w+")==NULL)
{
printf("打开文件出错!\n");
exit(0);
}
int readb=0;
while((readb=fread(ch,sizeof(char),1024,sourse))>0)
{
fwrite(ch,sizeof(char),readb,backup);
if(ferror(backup))
{
printf("写入错误!\n");
exit(1);
}
if(ferror(sourse))
{
printf("读取出错!\n");
exit(1);
}
if(fclose(sourse))
{
printf("sourse流关闭出错!\n");
exit(1);
}
if(fclose(backup))
{
printf("backup流关闭出错!\n");
exit(1);
}
}
return 0;
}