Por fin, hace unos dos dias mientras vagueaba un poco en el canal #ubuntu-es volvi a programar. Todo empezo con un tio que queria saber si habia algun cronometro para ubuntu, estaba resolviendo estos cubos (creo que se llaman rubik) y queria saber cuanto tardaba. Nadie le dio una respuesta satisfactoria y yo me interese en el caso, le dije que no debia ser tan dificil hacer uno sencillo en C, que me diera un poco de tiempo y yo lo hacia. Bien, tarde unas dos horas porque no tenia ni idea de como hacer para que el tiempo siguiera corriendo mientras se esperaba la respuesta del usuario, despues estaba que el solo tenia que presionar una tecla y el programa tenia que terminar (algo como getch() ). Despues de pasar todo el tiempo del mundo preguntando en #c y leyendo man pages (sudo aptitude install manpages-dev), me salio este codigo:
/*librerias*/
#include <stdio.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include <termios.h>
#include <stdlib.h>
int main() {
struct timeval timeout;
fd_set rdfs;
FD_ZERO(&rdfs);
FD_SET(0,&rdfs);
struct termios my_term, old_term;
my_term.c_lflag &= (~ICANON);
my_term.c_cc[VTIME] = 0;
my_term.c_cc[VMIN] = 1;
tcsetattr(0,TCSANOW,&my_term);
int total = 0;
int segundos = 0;
int minutos = 0;
while ( total == 0 ) {
if ( segundos == 60 ) {
minutos += 1;
segundos = 0;
}
timeout.tv_sec = 1;
timeout.tv_usec = 0;
segundos += 1;
total = select( 1, &rdfs, NULL, NULL, &timeout ) ;
FD_ZERO(&rdfs);
FD_SET(0,&rdfs);
}
printf("%i seconds and %i minutes!\n",segundos+1, minutos);
tcsetattr(0,TCSANOW,&old_term);
return(EXIT_SUCCESS);
}
No es lo mejor que pude haber hecho, pero es suficiente. Todavia tengo que estudiar un poco sobre termios.h para ver si puedo regresar la terminal a la normalidad despues de cambiar las cosas (old_term parece no funcionar), tambien me han dicho que no es muy portable, ya tendre que solucionar eso tambien. De momento eso es lo que tengo y compilado en mi laptop bajo ubuntu GNU/Linux 8.04 con gcc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu3) funciona bien.


ese codigo esta todo mal
si suben algo suban algo bien
el favor completo porfa
gracias!!!
holas pos bueno para decirte q lo siento mucho, ya se que el codigo es una porqueria
. Solo era experimentando, nada serio… lamento mucho si no te sirvio