问如何复制文件?
答可以使用system()来调用操作系统的复制实用程序(参见问题19.27),或者打开源文件和目标文件(使用fopen或某个低级文件打开系统调用),从源文件中读取字符或字符块,然后将它们写入目标文件。下面是一个简单的示例
#include <stdio.h> int copyfile(char *fromfile, char *tofile) { FILE *ifp, *ofp; int c; if((ifp = fopen(fromfile, "r")) == NULL) return -1; if((ofp = fopen(tofile, "w")) == NULL) { fclose(ifp); return -1; } while((c = getc(ifp)) != EOF) putc(c, ofp); fclose(ifp); fclose(ofp); return 0; }要一次复制一个块,请将内循环重写为
while((r = fread(buf, 1, sizeof(buf), ifp)) > 0) fwrite(buf, 1, r, ofp);其中r是一个int和buf是一个大小合适的char.
引用:K&R 第 1 节,第 7 节