fUSIONAR ARCHIVOS EN C

Iniciado por xdroid, 7 Mayo 2013, 05:19 AM

0 Miembros y 1 Visitante están viendo este tema.

xdroid

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

Luchoz95

la verdad que no entiendo ese code, te dejo uno que hice medio rapido , S2!
#include <stdio.h>
#include <windows.h>

int main()
{
char * nombreentrada = "entrada.txt";
char * nombresalida = "salida.txt";
char cadena[256];
FILE * entrada;
FILE * salida;
entrada=fopen(nombreentrada,"r");
salida=fopen(nombresalida,"a");
if(entrada==NULL)
{
MessageBox(0,"No se puede encontrar el archivo","Error",MB_OK | MB_ICONERROR);
ExitProcess(1);
}

while (fgets(cadena, 256, entrada)!= NULL)
{
fprintf(salida,"%s",cadena);
}
fclose(entrada);
fclose(salida);

return 0;
}

rir3760

Cita de: Luchoz95 en  7 Mayo 2013, 05:33 AMla 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.

Cita de: Luchoz95 en  7 Mayo 2013, 05:33 AMte 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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

xdroid

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