Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: xdroid en 7 Mayo 2013, 05:19 am



Título: fUSIONAR ARCHIVOS EN C
Publicado por: xdroid en 7 Mayo 2013, 05:19 am
Necesito ayuda en un programa en Lenguaje C que sirva para fusionar archivos, es decir, que agregue el contenido de un archivo al contenido de otro, y guarde el resultado en un archivo de salida.

Tengo la sintaxis aunque le hacen falta completar algunas partes y no eh podido gracias las partes con guiones ___ son las que hacen falta para poder crear el programa

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
char buffer[BUFSIZ];
int main(int argc, char *argv[])
{
int fd_origen; int fd_destino; int nbytes;
int i;
/*Analisis de los argumentos de la linea de comandos*/
if (argc <= !3) {
fprintf(stderr,"Forma de uso: %s  origen de destino \n", argv[____]);
exit(____);
}
if ((fd_destino= open(argv[____-1], O_WRONLY|O_TRUNC|O_CREAT, 0666))==-1) {
fprintf(stderr,"Error al crear el archivo de salida \n");
perror(argv[3]);
exit(____);
}
for(i=1;i<3;i++) {
/*Apertura del archivo 1 en modo solo lectura (O_RDONLY). */
if ((fd_origen=open(argv[1],O_RDONLY))== -1) {
fprintf(stderr,"Error al abrir el archivo de entrada: %s \n", ____);
perror(argv[1]);
exit(-1);
}
/* copiamos el archivo 1 en el archivo destino. */
while ((nbytes=read(fd_origen, buffer, sizeof buffer))> 0)
write(fd_destino, buffer, nbytes);
close(fd_origen);
}
close(fd_destino);
}


Título: Re: fUSIONAR ARCHIVOS EN C
Publicado por: Luchoz95 en 7 Mayo 2013, 05:33 am
la verdad que no entiendo ese code, te dejo uno que hice medio rapido , S2!
Código
  1. #include <stdio.h>
  2. #include <windows.h>
  3.  
  4. int main()
  5. {
  6. char * nombreentrada = "entrada.txt";
  7. char * nombresalida = "salida.txt";
  8. char cadena[256];
  9. FILE * entrada;
  10. FILE * salida;
  11. entrada=fopen(nombreentrada,"r");
  12. salida=fopen(nombresalida,"a");
  13. if(entrada==NULL)
  14. {
  15. MessageBox(0,"No se puede encontrar el archivo","Error",MB_OK | MB_ICONERROR);
  16. ExitProcess(1);
  17. }
  18.  
  19. while (fgets(cadena, 256, entrada)!= NULL)
  20. {
  21. fprintf(salida,"%s",cadena);
  22. }
  23. fclose(entrada);
  24. fclose(salida);
  25.  
  26. return 0;
  27. }
  28.  


Título: Re: fUSIONAR ARCHIVOS EN C
Publicado por: rir3760 en 7 Mayo 2013, 05:53 am
la verdad que no entiendo ese code
Es una tarea donde el estudiante debe completar un programa rellenando las partes faltantes indicadas con ________, supongo es una practica de POSIX.

te dejo uno que hice medio rapido
Si tu idea es practicar con funciones parte de la Win32 API no hay problema. Solo un comentario: no es necesario llamar a ExitProcess para terminar el programa, basta con (en tu caso) la sentencia "return 1;".

Un saludo


Título: Re: fUSIONAR ARCHIVOS EN C
Publicado por: xdroid en 7 Mayo 2013, 06:08 am
Es que andamos trabajando bajo sistemas operativos no graficos y  ademas de que andamos viendo un poco de programacion en C la cual no tengo mucha idea  y una parte de la practica  trata de rellenar este programa para que funcione pero no logro hacerlo funcionar