Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Modulo en linux

Estas en el tema de Modulo en linux en el foro de C/C++ en Foros del Web. Hola, estoy haciendo un modulo en linux y necesito que me muestre el instante en el que es insertado #include <linux/module.h> #include <linux/init.h> #include <linux/kernel.h> ...
  #1 (permalink)  
Antiguo 06/04/2011, 15:45
 
Fecha de Ingreso: abril-2011
Mensajes: 9
Antigüedad: 13 años
Puntos: 0
Modulo en linux

Hola, estoy haciendo un modulo en linux y necesito que me muestre el instante en el que es insertado

#include <linux/module.h>

#include <linux/init.h>

#include <linux/kernel.h>

#include <linux/sched.h>
static int hola(void)

{

printk(KERN_INFO "Hola, el modulo esta siendo cargado.\n");
printk(KERN_INFO "El user space del proceso es '%s'\n", current->comm);
printk(KERN_INFO "El PID es %i\n", current->pid);
printk("la hora es %d , CURRENT_TIME)



return 0;

}

Si uso la macro CURRENT_TIME , el resultado es un numero entero

Pueden ayudarme a convertir este numero a formato fecha, o me pueden recomendar otra forma de hacerlo

GRACIAS
  #2 (permalink)  
Antiguo 07/04/2011, 11:42
 
Fecha de Ingreso: octubre-2010
Ubicación: Edo. de México
Mensajes: 94
Antigüedad: 13 años, 6 meses
Puntos: 9
Respuesta: Modulo en linux

nunca he utilizado la macro CURRENT_TIME pero me imagino que el entero que te devuelve es el número de segundos que han transcurrido desde la creación de linux ( o algo asi hehe). Talvez el siguiente codigo te sirva de algo.

Código c:
Ver original
  1. #include <time.h>
  2. #include <locale.h>
  3. #include <langinfo.h>
  4. #include <string.h>
  5.  
  6. int obtenHora(char *formato, char **destino){
  7.   *destino = NULL;
  8.   time_t rawtime;
  9.   struct tm *timeinfo;
  10.   char buffer[80];
  11.  
  12.   time(&rawtime);
  13.   timeinfo = localtime(&rawtime);
  14.   strftime(buffer, sizeof(buffer), formato, timeinfo);
  15.   *destino = (char *)malloc((strlen(buffer) + 1) * sizeof(char));
  16.   strcpy(*destino, buffer);
  17.   return 0;
  18. }
  19.  
  20. int main(void){
  21.   char *hora = NULL;
  22.   obtenHora("%Y%m%d_%H%M%S", &hora);
  23.   printf("%s\n", hora);
  24.   if(hora != NULL){
  25.     free(hora);
  26.     hora = NULL;
  27.   }
  28.   return 0;
  29. }

Aqui básicamente lo que hago es obtener ese numero entero que tu tienes en tu macro a partir de la funcion time() y lo almaceno en "rawtime". Luego creo una estructura de tipo tm llamada "timeinfo", en donde se almacena la informacion de hora, minutos, segundos, etc. Pr ultimo le doy formato con la función strftime().

Espero te sea de ayuda, Salu2

Etiquetas: linux
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:54.