Nous sommes actuellement le 25 Mai 2012, 12:06



Publier un nouveau sujet Répondre au sujet
 help in function 
Auteur Message
PSP newbie

Messages: 2
Message help in function
i want to copy files to flash0 but it only copies one file and want to know how to copy instead of one file i want to copy 2 files or more

need help


#include <pspkernel.h>
#include <pspdebug.h>

//ponemos nuestro programa en modo VSH
PSP_MODULE_INFO("FlashWriter", 0x800, 2, 0);
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_VSH);

//para poner la ruta de origin y destination
#define ORIGiN "ms0:/f/vshctrl.prx, ms0:/f/recovery.prx"
#define ORIGiN "ms0:/f/recovery.prx"
//"ms0:/put/here/the/route/to/archive.ext" //example ms0:/f/vshctrl.prx, ms0:/f/recovery.prx"
#define DESTINO"flash0:/kd/vshctrl.prx, flash0:/kd/recovery.prx" //"flash0:/put/here/the/route/to/archive.ext" //example flash0:/kd/vshctrl.prx, flash0:/kd/recovery.prx
//variable for utilizing like buffer
char write_buffer[128*1024];

//function that realizes the copy of archive
int write_file(const char *read_loc, const char *write_loc)
{
int fdin; //to manage the decriptor of archive origin
int fdout; //for manage the descriptor of archivw destin

//opens the archive origin
fdin = sceIoOpen(read_loc, PSP_O_RDONLY, 0777);
if(fdin >= 0)
{
//si se abrio el archivo origen, intentamos abrir el archivo destino, creandolo si no existe
int bytesRead = 2; /*para controlar cuantos bytes se han leido del archivo origen
y saber cuantos se van a escribir en el archivo destino,
escribiremos la misma cantidad que hemos leido*/

//abrimos el archivo destino
fdout = sceIoOpen(write_loc, PSP_O_WRONLY | PSP_O_CREAT, 0777);
if(fdout < 0)
{
//si no se pudo abrir el archivo destino
pspDebugScreenPrintf(" No se pudo abrir %s\n", write_loc);
return -2;
}

/*leemos del archivo origen, guardamos lo leido en el buffer de escritura y la cantidad
de bytes leidas en bytesRead*/
bytesRead = sceIoRead(fdin, write_buffer, sizeof(write_buffer));

//este ciclo se repetira mientras queden bytes por leer del archivo origen y se pueda escribir en destino
while((bytesRead > 0) && (fdout >= 0))
{
sceIoWrite(fdout, write_buffer, bytesRead);
bytesRead = sceIoRead(fdin, write_buffer, sizeof(write_buffer));
}

if(fdout >= 0)
{
//si todo ha ido bien, entonces cerramos el archivo destino
sceIoClose(fdout);
}

if(fdin >= 0)
{
//cerramos el archivo origen
sceIoClose(fdin);
}
}
else
{
//si no se pudo abrir el archivo origen
pspDebugScreenPrintf(" No se pudo abrir %s\n", read_loc);
return -1;
}

//si todo ha ido bien llegaremos hasta aqui y devolvemos cero, indicando que todo ha sido correcto
return 0;

}

//funcion principal
int main(int argc, char* argv[])
{
pspDebugScreenInit();

int result;

/*desasignamos la flash0
esto lo hacemos para luego reasignarla
con los permisos de escritura */
result = sceIoUnassign("flash0:");
if(result < 0)
{
//si hubo error al tratar de desasignar la flash0
pspDebugScreenPrintf("Error desasignando la flash0");
}
else
{
//reasignamos la flash con permisos de escritura
result = sceIoAssign("flash0:", "lflash0:0,0", "flashfat0:", IOASSIGN_RDWR, NULL, 0);
if(result < 0)
{
//si no se pudo asignar los permisos de escritura
pspDebugScreenPrintf("Error asignando la flash0 para escritura");
}
else
{
/*si todo ha ido bien llegamos a esta parte
aqui es donde llamamos a la funcion que copia
el archivo desde una ubicacion a otra */
pspDebugScreenPrintf("flashing......\n");
result = write_file(ORIGEN, DESTINO);
if(result>=0)
{
//si no hubo errores en el proceso de escritura
pspDebugScreenPrintf("done\n");
}
}
}
//hemos terminado, pausamos unos segundos para poder leer los letreros
sceKernelDelayThread(6000000);

//salimos al XMB
sceKernelExitGame();
return 0;
}


Dernière édition par chaar91 le 22 Oct 2010, 22:19, édité 1 fois.

22 Oct 2010, 22:02
Profil
publicité
English moderator
English moderator
Avatar de l’utilisateur

Messages: 358
Message Re: help in function
for the sake of the coders here that help in this section please trnalsate the spanish notes to english, thanks.

_________________
Image
Je ne parle pas français. Je suis Américain.


22 Oct 2010, 22:09
Profil YIM
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Sauter vers:  

Actualité PSP

Exploitez votre PSP

Aide et information

Nos partenaires