方法一:
zxf@zxf-virtual-machine:2$ ls -lh
total 468K
-rw-rw-r-- 1 zxf zxf 316 Feb 18 20:02 2.c
-rwxrwxr-x 1 zxf zxf 7.3K Feb 18 20:03 a.out
-rw-rw-r-- 1 zxf zxf 455K Feb 18 20:00 gril.jpg
zxf@zxf-virtual-machine:2$ ./a.out
copy ok!
zxf@zxf-virtual-machine:2$ ls -lh
total 924K
-rw-rw-r-- 1 zxf zxf 316 Feb 18 20:02 2.c
-rwxrwxr-x 1 zxf zxf 7.3K Feb 18 20:03 a.out
-rw-rw-r-- 1 zxf zxf 455K Feb 18 20:00 gril.jpg
-rw-rw-r-- 1 zxf zxf 455K Feb 18 20:51 love.jpg
zxf@zxf-virtual-machine:2$ cat 2.c
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE* fp1 = fopen("./love.jpg","w+");
FILE* fp2 = fopen("./gril.jpg","r");
char ch;
while(1){
ch = fgetc(fp2);
if(feof(fp2))
break;
if(ferror(fp2))
return -1;
fputc(ch,fp1);
}
printf("copy ok!\n");
fclose(fp1);
fclose(fp2);
return 0;
}
zxf@zxf-virtual-machine:2$
反思:一个字符一个字符的读写;
方法二:
zxf@zxf-virtual-machine:1$ ls -lh
total 468K
-rw-rw-r-- 1 zxf zxf 413 Feb 18 20:43 1.c
-rwxrwxr-x 1 zxf zxf 7.3K Feb 18 20:43 a.out
-rw-rw-r-- 1 zxf zxf 455K Feb 18 20:20 gril.jpg
zxf@zxf-virtual-machine:1$ ./a.out
count :465443
zxf@zxf-virtual-machine:1$ ls -lh
total 924K
-rw-rw-r-- 1 zxf zxf 413 Feb 18 20:43 1.c
-rwxrwxr-x 1 zxf zxf 7.3K Feb 18 20:43 a.out
-rw-rw-r-- 1 zxf zxf 455K Feb 18 20:20 gril.jpg
-rw-rw-r-- 1 zxf zxf 455K Feb 18 20:52 love.jpg
zxf@zxf-virtual-machine:1$ cat 1.c
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE* fp1 = fopen("./love.jpg","wb+");
FILE* fp2 = fopen("./gril.jpg","rb");
fseek(fp2,0,SEEK_END);
int count = ftell(fp2);
printf("count :%d\n",count);
char buf[100];
rewind(fp2);
int size;
while(1){
size = fread(buf,sizeof(char),100,fp2);
fwrite(buf,sizeof(char),size,fp1);
if(!size)
break;
}
fclose(fp1);
fclose(fp2);
return 0;
}
zxf@zxf-virtual-machine:1$
一次多个字节读多个字节写: