04-11-2012, 19:48
Escriba un programa que permita copiar archivos de cualquier tipo. Llámelo
copy. Recibe por línea de comandos el path del archivo fuente en primer lugar y
luego separado por uno o mas espacios o tabs, el path de destino. Compruebe
que ambos argumentos están disponibles, y de otro modo no prosiga con la
copia e informe al usuario el modo correcto de invocación de copy.
Uso: copy <path archivo origen> <path archivo destino>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *arg[])
{
char buffer[40];
FILE *fp;
FILE *fp1;
fp= fopen(arg[1],"rt");
fp1=fopen(arg[2],"w+t");
fread(&buffer,sizeof(buffer),1,fp);
while( (feof(fp))==0)
{
fwrite(&buffer,sizeof(char),1,fp1); // escribo en el archivo destino lo leido en el archivo origen
fread(&buffer,sizeof(buffer),1,fp);
}
fclose(fp);
fclose(fp1);
return 0;
}
Cuando lo ejecuto, ingreso por argumentos del main , los 2 paths, el del archivo que quiero copiar, y el path del lugar donde quiero copiar el archivo.Y me aparece "Segmentation fault (core dumped)"
copy. Recibe por línea de comandos el path del archivo fuente en primer lugar y
luego separado por uno o mas espacios o tabs, el path de destino. Compruebe
que ambos argumentos están disponibles, y de otro modo no prosiga con la
copia e informe al usuario el modo correcto de invocación de copy.
Uso: copy <path archivo origen> <path archivo destino>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *arg[])
{
char buffer[40];
FILE *fp;
FILE *fp1;
fp= fopen(arg[1],"rt");
fp1=fopen(arg[2],"w+t");
fread(&buffer,sizeof(buffer),1,fp);
while( (feof(fp))==0)
{
fwrite(&buffer,sizeof(char),1,fp1); // escribo en el archivo destino lo leido en el archivo origen
fread(&buffer,sizeof(buffer),1,fp);
}
fclose(fp);
fclose(fp1);
return 0;
}
Cuando lo ejecuto, ingreso por argumentos del main , los 2 paths, el del archivo que quiero copiar, y el path del lugar donde quiero copiar el archivo.Y me aparece "Segmentation fault (core dumped)"