Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <stdio.h>
00022 #include <fcntl.h>
00023 #include <termios.h>
00024 #include <unistd.h>
00025 #include <time.h>
00026 #include <sys/time.h>
00027
00028 #include "util.h"
00029
00030
00031 int util_getch(void)
00032 {
00033 struct termios oldt,
00034 newt;
00035 int ch=-1;
00036 tcgetattr( STDIN_FILENO, &oldt );
00037 newt = oldt;
00038 newt.c_lflag &= ~( ICANON | ECHO );
00039 tcsetattr( STDIN_FILENO, TCSANOW, &newt );
00040 fcntl(STDIN_FILENO, F_SETFL, FNDELAY);
00041 ch = getchar();
00042 fcntl(STDIN_FILENO, F_SETFL, 0);
00043 tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
00044 return ch;
00045 }
00046
00047
00048 double util_timestamp()
00049 {
00050 struct timeval tv;
00051 gettimeofday(&tv, NULL);
00052 return (double)tv.tv_sec+((double)tv.tv_usec)/1000000;
00053 }
00054
00055
00056 int util_timestamp_int()
00057 {
00058 static struct timeval tv1;
00059 struct timeval tv;
00060 if(tv1.tv_usec==0 && tv1.tv_sec==0) gettimeofday(&tv1, NULL);
00061 gettimeofday(&tv, NULL);
00062 return (int)(tv.tv_sec-tv1.tv_sec)*1000000+(int)(tv.tv_usec-tv1.tv_usec);
00063 }