Problema con time() en C. Siempre devuelve 1/1/1970!

Hola amigos,

soy el desarrollador de la herramienta que sirve para localizar satélites llamado SatFinder Portable. Es un Homebrew hecho en lua que podeis conseguir por muy poco que busqueis.

El tema es que estoy portandolo a C, y el primer problema que me he encontrado, despues de instalarme el toolchain, cygwin, etc., es que cuando le pido la fecha y la hora en un programa, me devuelve la hora correcta, pero la fecha siempre la del 1 de Enero de 1970!. Si no soluciono esto no puedo avanzar.

Este sería un codigo chorra para obtener por pantalla la fecha. Si alguno tiene el entorno instalado y tal, podría probar a compilarlo y ver que le sale?

Un saludo! y muchas gracias por adelantado por la ayuda que podais darme.

//------------------

//Basic includes
#include
#include
//Display include
#include
//Controls include
#include
#include

PSP_MODULE_INFO("Ejemplo", 0, 1, 1);

#define printf pspDebugScreenPrintf

/* Exit callback */
int exit_callback(int arg1, int arg2, void *common) {
sceKernelExitGame();
return 0;
}

/* Callback thread */
int CallbackThread(SceSize args, void *argp) {
int cbid;

cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void) {
int thid = 0;

thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if(thid >= 0) {
sceKernelStartThread(thid, 0, 0);
}

return thid;
}

/* Main */
int main() {
// Initialization functions
pspDebugScreenInit();
SetupCallbacks();



SceCtrlData pad;
printf("Pulsa X para comenzar...");

while(1) {
sceCtrlReadBufferPositive(&pad, 1);
if(pad.Buttons & PSP_CTRL_CROSS) {
break;
}
}

pspDebugScreenClear();

time_t rawtime;
struct tm * timeinfo;

time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "Current local time and date: %s", asctime (timeinfo) );


while(1) {
sceCtrlReadBufferPositive(&pad, 1);
if(pad.Buttons & PSP_CTRL_CIRCLE) {
break;
}
}

// Sleep the PSP till press HOME and exit.
sceKernelSleepThread();
return 0;

}
Esto va en programacion
1 respuesta