C Interview Questions and Answers


How do I copy files?

Either use system() to invoke your operating system's copy utility, or open
the source and destination files (using fopen or some lower-level file-opening system
call), read characters or blocks of characters from the source file, and write them
to the destination file. Here is a simple example:

#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);



return 0;


To copy a block at a time, rewrite the inner loop as

while((r = fread(buf, 1, sizeof(buf), ifp))> 0)

fwrite(buf, 1, r, ofp);

where r is an int and buf is a suitably-sized array of char.

Posted by:Richards