Miércoles, 18-10-2017, 2:25 AM
Welcome
Inicio Registrarse Entrada
Le saludo Visitante | RSS
Inicio » 2011 » Marzo » 22 » FlashWritter in C
12:11 PM
FlashWritter in C
This is just an example for a FlashWritter in C

Main.c


#include <pspkernel.h>

#include <pspdebug.h>

 

//ponemos nuestro programa en modo VSH

PSP_MODULE_INFO("FlashWriter", 0x800, 1, 0);

PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_VSH);

 

//para poner la ruta de origen y destino

#define ORIGEN "ms0:/hola.txt" //"ms0:/poner/aqui/la/ruta/al/archivo.ext" //ejemplo ms0:/hola.txt

#define DESTINO "flash0:/hola.txt" //"flash0:/poner/aqui/la/ruta/al/archivo.ext" //ejemplo flash0:/hola.txt

 

//variable para utilizarla como buffer de escritura

char write_buffer[128*1024];

 

//funcion que realiza la copia del archivo

int write_file(const char *read_loc, const char *write_loc)

{

int fdin; //para manejar el descriptor del archivo origen

int fdout; //para manejar el descriptor del archivo destino

 

//abrimos el archivo origen

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 = 1; /*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("escribiendo...\n");

result = write_file(ORIGEN, DESTINO);

if(result>=0)

{

//si no hubo errores en el proceso de escritura

pspDebugScreenPrintf("hecho\n");

}

}

}

//hemos terminado, pausamos unos segundos para poder leer los letreros

sceKernelDelayThread(6000000);

 

//salimos al XMB

sceKernelExitGame();

return 0;

}



MakeFile

TARGET = FlashWriter

OBJS = main.o

INCDIR = CFLAGS = -O2 -G0 -Wall

CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti

ASFLAGS = $(CFLAGS) -c

LIBDIR =

LDFLAGS =

LIBS =

#-lpspsystemctrl_kernel

BUILD_PRX =1

PSP_FW_VERSION = 500

EXTRA_TARGETS = EBOOT.PBP

PSP_EBOOT_TITLE = Flash Writer

PSPSDK=$(shell psp-config --pspsdk-path)

include $(PSPSDK)/lib/build.mak


The end ^^

Categoría: Proyectos | Visiones: 213 | Ha añadido: Kenta15 | Ranking: 0.0/0
Total de comentarios: 0
Solamente los usuarios registrados pueden añadir los comentarios.
[ Registrarse | Entrada ]
Menú del sitio

Block title

Formulario de entrada

Categorías de la sección
Day's [7]
Los dias
New's [10]
Proyectos [17]
Reflexiones [102]

Visitas
contador de visitas
contador de visitas

Twitter

Calendario
«  Marzo 2011  »
LuMaMiJuViSaDo
 123456
78910111213
14151617181920
21222324252627
28293031

Share to Facebook
Share on Facebook

Nuestra encuesta
Estimen mi sitio
Total de respuestas: 36

Estadística

Total en línea: 1
Invitados: 1
Usuarios: 0

 
Copyright Kenta15 2017-2010
Alojamiento web gratis - uCoz