1.fgetc/fputc
#include <stdio.h>
#include <errno.h>
int main(int argc, const char *argv[])
{
FILE * src;
FILE * dest;
src = fopen("/home/linux/11.jpg","r");
dest = fopen("./1.jpg","w");
if(NULL == src || NULL == dest)
{
perror("fopen error!\n");
return 1;
}
while(1)
{
int c = fgetc(src);
if(EOF == c)
{
break;
}
fputc(c,dest);
}
fclose(src);
fclose(dest);
return 0;
}
2.fgets/fputs(不能复制照片)
#include <stdio.h>
#include <errno.h>
int main(int argc, const char *argv[])
{
if(argc < 3)
{
printf("usage:./a.out srcfile dstfile\n");
return 1;
}
FILE * src = fopen(argv[1],"r");
FILE * dst = fopen(argv[2],"w");
if(NULL == src || NULL == dst)
{
perror("fopen error!\n");
return 1;
}
char buf[256] = {0};
while(1)
{
if(fgets(buf,sizeof(buf),src))
{
fputs(buf,dst);
}
else
{
break;
}
}
fclose(src);
fclose(dst);
return 0;
}
3.fread/fwrite
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
FILE* src = fopen("/home/linux/11.jpg","r");
FILE* dst = fopen("./1.jpg","w");
char *buf =malloc(54889);
bzero(buf,54889);
fread(buf,54889,1,src);
fwrite(buf,54889,1,dst);
fclose(dst);
fclose(src);
free(buf);
return 0;
}
4.read/write
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, const char *argv[])
{
if(argc < 3)
{
printf("usage:./a.out srcfile dstfile\n");
return 1;
}
int src = open(argv[1],O_RDONLY);
int dst = open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0666);
if(-1 == src || -1 == dst)
{
printf("open file error\n");
return 1;
}
while(1)
{
char buf[1024];
int ret = read(src,buf,sizeof(buf));
if(0 == ret)
{
break;
}
write(dst,buf,ret);
}
close(src);
close(dst);
return 0;
}