Program has no error but when it run then doesn't give output... You ca check it.
#include%26lt;stdlib.h%26gt;
#include%26lt;stdio.h%26gt;
int copy_file(char *Old, char *New);
int main (void)
{
char source[1024], destination[1024];
/*get source file name*/
printf("\nplease enter the source file name: ");
gets(source);
/*get destination file name*/
printf("\nplease enter the destination file name: ");
gets(destination);
/*check value returned by copy function, if any other*/
/*vlaue other than 0 is returned error message is displayed*/
if (copy_file(source, destination) ==0)
puts("File copy was successful");
else
fprintf(stderr, "Error trying to copy file!");
return 0;
}
int copy_file(char *Old, char *New)
{
FILE *fo, *fn;
int read, written;
/*open source file for reading in binary mode*/
/*if fopen gives a NULL character -1 is returned*/
/*main and error message displayed*/
if((fo=fopen(Old, "rb"))==NULL)
return -1;
/*open the destination file in binary writting mode*/
/*if fopen returns NULL source file is closed, the value*/
/*-1 is returned to main and error message is displayed*/
if((fn = fopen(New, "wb"))==NULL)
{
fclose(fo);
return -1;
}
/*read from source file in blocks of 1024, if the end of*/
/* the source file has not been reached, write the block to*/
/*the destination file.*/
while (1)
{
read = fread(Old, 1, 1024, fo);
getchar();
written = fwrite(Old, 1, read, fn);
getchar();
if(!feof(fo))
fputc(written, fn);
else
break;
}
fclose(fo);
fclose(fn);
return 0;
}
My C program is okay but dont give proper output when I run it....... pl check it ....?
Take out the getchars. With them in, you have to type something and hit enter to write every 1024 byte block.
Also, don't use gets(). It is a blight on the face of the earth and causes buffer overruns.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment