#include #include #include #include #include #include #include #include #define MAX 1024 void err_quit(char *msge); int main(int argc, char *argv[]) { char buffer[8]; char dest[MAX], *exten; int fd_orig, fd_dest, n; char *name_orig= argv[1]; char name_dest[32]; if (argc!=2) { fprintf(stderr, "Modo uso: %s \n", argv[0]); return -1; } exten= rindex(name_orig, '.'); if (strcmp(exten, ".txt")) err_quit("Solo archivos de txt plano"); if ((fd_orig= open(name_orig, O_RDONLY))== -1) err_quit("Error al abrir origen"); strcpy(name_dest, "cifrado-"); strcat(name_dest, name_orig); if ((fd_dest= creat(name_dest, 0666))== -1) err_quit("Error al abrir destino"); while (n= read(fd_orig, buffer, sizeof buffer)) write(fd_dest, buffer, n); close(fd_dest); close(fd_orig); return 0; } void err_quit(char *msge) { perror(msge); exit(EXIT_FAILURE); }