Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Patofet

#1
no, con usleep() no hay forma de controlar que el bucle se ejecute durante exactamente X milisegundos, ya que las funciones que leen por teclado y estas cosas hacen "perder el tiempo" al procesador. Seria question de antes de entrar al bucle preguntarle al sistema la "hora" y luego a cada aliteracion del bucle mirar la hora que es y mirar si se ha pasado del tiempo
#2
Hola, voy directamente al grano, estoy intentando ejecutar un bucle durante X milisegundos en linux, en windows lo he conseguido hacer así:

 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <time.h>
#include "funciones.h"

 char iesperaMirandoTecla(int milisegundos){ //Hace esperar "milisegundos" milisegundos mientras va mirando por teclado si se esta pulsando alguna tecla
       char caracter='\0';
       int contador=0;
       clock_t final=clock()+(milisegundos*(CLOCKS_PER_SEC/1000));
       init_keyboard();
       while(( clock() < final) && (caracter=='\0')){
           if(kbhit()){
               caracter = readch();
               printf("\b ");
           }
           esperaMilisegundos(1);
           contador++;
       }
       close_keyboard();
       return caracter;
   }


pero en linux pongo lo mismo y no funciona, en principio todo(vale casi todo lo del teclado no) esta en ANSI C y en linux no me funciona y no logro entender y no logro saber el porque ..., ¿alguien tiene alguna idea?

Gracias de antemano

P:D: Aclaración: Seria question de antes de entrar al bucle preguntarle al sistema la "hora" y luego a cada aliteracion del bucle mirar la hora que es y mirar si se ha pasado del tiempo