dark_on_5 escribió:Quiero copiar archivos, sin usar el fwrite y demas... Si no hay otro metodo para hacerlo, podrias explicarme como usarlo bien con un ejemplo (mp)?? Programar es una mierda cuando llevas toda la tarde con los mismos errores!!!
Bueno si me explicas tu idea te puedo ayudar un poco más y aunque sea offtopic te doy unas pistas básicas...
Copiar es /dev_hdd0/pato.bin a /dev_hdd0/pito.bin sería en pseudocódigo...
* abres pato.bin
* Si se ha abierto correctamente, abres pito.bin
* Si se ha abierto correctamente leemos por ejemplo 512 bytes
* Escribes los 512bytes en pito.bin
* cierras pito.bin
* cierras pato.bin
* end
Usando las glibs normales:
bool CopyFile(char *path)
{
FILE *fp_pito, *fp_pato;
char mem[512];
int file_size = 0;
fp_pito = fopen(path, "rb"); //binario y lectura
if (fp_pito == NULL)
return false;
fp_pato = fopen("/dev_hdd0/pato.bin", "wb"); //binario y escritura
if (fp_pato == NULL)
{
fclose(fp_pito);
return false;
}
//esto lo puedes poner en un while(eof(fp_pito))...
fread((void *) mem, sizeof(mem), file_size, fp_pito); //file_size contiene los bytes leidos, es bueno comprobarlo
fwrite((void *) mem, sizeof(mem), file_size, fp_pato); //file_size contiene los bytes leidos, es bueno comprobarlo
fclose(fp_pito); //cerramos
fclose(fp_pato);
return true;
}
También puedes usar las funciones del Lv2 o incluso dma, pero eso es mucho más complejo. Pero te dejo ejemplos de uso:
Lv2FsFile fd;
...
lv2FsOpen("/dev_hdd0/pato.bin", 0, &fd, S_IRWXU | S_IRWXG | S_IRWXO, NULL, 0) // siempre abre con los permisos que quieras, hermes dixit.
...
lv2FsRead(fd, mem, len, &bytes);
...
lv2FsClose(fd);
Un Saludo y para más cosas mejor crear otro tema, me avisas por mp o algo