#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])

{
    FILE *entrada, *saida;
    int c;

    if(argc != 3)
    {
        fprintf(stderr, "Tem de passar dois argumentos!\n");
        return EXIT_FAILURE;
    }

    if((entrada = fopen(argv[1], "r")) == 0)
    {
        fprintf(stderr, "Erro abrindo o ficheiro \"%s\".\n", argv[1]);
        return EXIT_FAILURE;
    }
    if((saida = fopen(argv[2], "w")) == 0)
    {
        fprintf(stderr, "Erro abrindo o ficheiro \"%s\".\n", argv[2]);
        return EXIT_FAILURE;
    }

    while((c = getc(entrada)) != EOF)
        putc(c, saida);
    if(ferror(saida))
    {
        fprintf(stderr, "Erro ao escrever!\n");
        return EXIT_FAILURE;
    }

    fclose(entrada);
    fclose(saida);

    return EXIT_SUCCESS;        /* como tudo correu bem... */
}