hay alguna funcion en c que permita al programa hacer una copia de sí mismo?
hay alguna funcion en c que permita al programa hacer una copia de sí mismo?
Si te pudieras explicar algo más se agradecería, yo no comprendo lo que quieres hacer, para hacer una copia de si mismo donde? en memoria? en el disco duro? no se, explicate!
¿te refieres a algo así como un worm?
talvez sea posible con la funcion system (no recuerdo de qué librería es), por ejemplo si tu programa se llama programa.exe (pensé mucho en ese nombre :P)
system("copy programa.exe program2.exe");
espero sirva de algo.
saludos
si, me referia a copiarse como un worm, lo probaré gracias giskard
eso de system es una chapuza increible, lo que puedes hacer es lo siguiente...
(Todo es utilizando el estandar POSIX)
int copy_file(char *src, char *dst) {
int fd_src, fd_dst;
ssize_t c;
char buf[MAX_NAME_SZ];
if ((fd_src=open(src,O_RDONLY))==-1) return -1;
if ((fd_dst=open(dst,O_WRONLY | O_TRUNC | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR))==-1)
return -1;
while((c=read(fd_src,buf,MAX_NAME_SZ)) > 0)
write(fd_dst,buf,c);
close(fd_src);
close(fd_dst);
return 0;
}
int main(int argc, char **argv) {
if (copy_file(argv[0], argv[1])) {
perror("copy_file()");
exit(-1);
}
printf("Fichero copiado satisfactoriamente\n");
return 0;
}
Marcadores