Copying a file C program example using the C file input/output functions
Compiler: Visual C++ Express Edition 2005
Compiled on Platform: Windows Xp Pro with SP2
Header file: Standard
Additional library: none/default
Additional project setting: Set project to be compiled as C
Project -> your_project_name Properties -> Configuration Properties -> C/C++ -> Advanced -> Compiled As: Compiled as C Code (/TC)
Other info:
To do: Copying a file C program example using the C file input/output functions
To show: How to use the C file I/O functions to copy a file
// Copying a file program example
#include <stdio.h>
// function prototype
int file_copy(char *oldname, char *newname);
void main(void)
{
char source[80], destination[80];
// get the source and destination names
printf("\nEnter source file: ");
gets_s(source, 80);
printf("\nEnter destination file: ");
gets_s(destination, 80);
if(file_copy(source, destination) == 0)
puts("Copy operation successful");
else
fprintf(stderr, "Error during copy operation");
}
int file_copy(char *oldname, char *newname)
{
FILE *fold, *fnew;
errno_t err = 0, err1 = 0;
int c;
// Open the source file for reading in binary mode
// fopen(oldname, "rb"), using a secure version
err = fopen_s(&fold, oldname, "rb");
err1 = fopen_s(&fnew, newname, "wb" );
if(err != 0)
return -1;
// Open the destination file for writing in binary mode
if(err1 != 0)
{
fclose(fold);
return -1;
}
// Read one byte at a time from the source, if end of file has not been reached, write the byte to the destination
while(1)
{
c = fgetc(fold);
if(!feof(fold))
fputc(c, fnew);
else
break;
}
fclose(fnew);
fclose(fold);
return 0;
}
Output example:
Enter source file: C:\newsix.txt
Enter destination file: C:\newsixcopy.txt
Copy operation successful
Press any key to continue . . .