LINUX C ʱ¼ä²Ù×÷
1.ʱ¼ä±íʾ
ÔÚ³ÌÐòµ±ÖÐ,ÎÒÃǾ³£ÒªÊä³öϵͳµ±Ç°µÄʱ¼ä,±ÈÈçÎÒÃÇʹÓÃdateÃüÁîµÄÊä³ö½á¹û.Õâ¸öʱºòÎÒÃÇ¿ÉÒÔʹÓÃÏÂÃæÁ½¸öº¯Êý:
#include <sys/time.h>
time_t time(time_t *tloc);
char *ctime(const time_t *clock);
timeº¯Êý·µ»Ø´Ó1970Äê1ÔÂ1ÈÕ0µãÒÔÀ´µÄÃëÊý.´æ´¢ÔÚtime_t½á¹¹Ö®ÖÐ.²»¹ýÕâ¸öº¯ÊýµÄ·µ»ØÖµ¶ÔÓÚÎÒÃÇÀ´ËµÃ»ÓÐʲôʵ¼ÊÒâÒå.Õâ¸öʱºòÎÒÃÇʹÓõڶþ¸öº¯Êý½«ÃëÊýת»¯Îª×Ö·û´®. Õâ¸öº¯ÊýµÄ·µ»ØÀàÐÍÊǹ̶¨µÄ:Ò»¸ö¿ÉÄÜֵΪ.Thu Dec7 14:58:59 2000 Õâ¸ö×Ö·û´®µÄ³¤¶ÈÊǹ̶¨µÄΪ26.
2.ʱ¼äµÄ²âÁ¿
ÓÐʱºòÎÒÃÇÒª¼ÆËã³ÌÐòÖ´ÐеÄʱ¼ä.±ÈÈçÎÒÃÇÒª¶ÔËã·¨½øÐÐʱ¼ä·ÖÎö.Õâ¸öʱºò¿ÉÒÔʹÓÃÏÂÃæÕâ¸öº¯Êý.
#include <sys/time.h>
int gettimeofday(struct timeval *tv,struct timezone *tz);
strut timeval {
long tv_sec; /* ÃëÊý */
long tv_usec; /* ΢ÃëÊý */
};
gettimeofday½«Ê±¼ä±£´æÔڽṹtvÖ®ÖÐ.tzÒ»°ãÎÒÃÇʹÓÃNULLÀ´´úÌæ.
#include #include #include
void function()
{
unsigned int i,j;
double y;
for(i=0;i<1000;i++)
for(j=0;j<1000;j++)
y=sin((double)i);
}
main()
{
struct timeval tpstart,tpend;
float timeuse;
gettimeofday(&tpstart,NULL);
function();
gettimeofday(&tpend,NULL);
timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+
tpend.tv_usec-tpstart.tv_usec;
timeuse/=1000000;
printf("Used Time:%f\n",timeuse);
exit(0);
}
Õâ¸ö³ÌÐòÊä³öº¯ÊýµÄÖ´ÐÐʱ¼ä,ÎÒÃÇ¿ÉÒÔʹÓÃÕâ¸öÀ´½øÐÐϵͳÐÔÄܵIJâÊÔ,»òÕßÊǺ¯ÊýËã·¨µÄЧÂÊ·ÖÎö.ÔÚÎÒ»úÆ÷ÉϵÄÒ»¸öÊä³ö½á¹ûÊÇ: Used Time:0.556070
3.¼ÆÊ±Æ÷µÄʹÓÃ
Linux²Ù×÷ϵͳΪÿһ¸ö½ø³ÌÌṩÁË3¸öÄÚ²¿¼ä¸ô¼ÆÊ±Æ÷.
ITIMER_REAL:¼õÉÙʵ¼Êʱ¼ä.µ½Ê±µÄʱºò·¢³öSIGALRMÐźÅ.
ITIMER_VIRTUAL:¼õÉÙÓÐЧʱ¼ä(½ø³ÌÖ´ÐеÄʱ¼ä).²úÉúSIGVTALRMÐźÅ.
ITIMER_PROF:¼õÉÙ½ø³ÌµÄÓÐЧʱ¼äºÍϵͳʱ¼ä(Ϊ½ø³Ìµ÷¶ÈÓõÄʱ¼ä).Õâ¸ö¾³£ºÍÉÏÃæÒ»¸öʹÓÃÓÃÀ´¼ÆËãϵͳÄÚºËʱ¼äºÍÓû§Ê±¼ä.²úÉúSIGPROFÐźÅ.
Ïà¹ØÎĵµ£º
ÔÎĵØÖ·£ºhttp://lhsblog01.blog.163.com/blog/static/1020045192010221104237126/
GPIOÊÇÓëÓ²¼þÌåϵÃÜÇÐÏà¹ØµÄ£¬linuxÌṩһ¸öÄ£ÐÍÀ´ÈÃÇý¶¯Í³Ò»´¦ÀíGPIO£¬¼´¸÷¸ö°å¿¨¶¼ÓÐʵÏÖ×Ô¼ºµÄgpio_chip¿ØÖÆÄ£¿é£ºrequest, free, input,output, get,set,i ......
×ܾõµÃÔÚITÐÐÒµÀï»ì£¬Ñ§±à³ÌÓïÑÔҪѧϰC²ÅÏñÑù£¬¿ª·¢ÒªÔÚLinuxϲÅÄÜ·¢»ÓºÃ£¬ºÇºÇ£¬Ëæ¿Ú˵µÄ£¬²»¹ý¸öÈËÈÏΪÏëÉîÈëµÄѧϰ¼ÆËã»ú֪ʶ£¬»¹ÊÇÓ¦¸ÃѧϰLinux²Ù×÷ϵͳ£¬ËùÒÔ´Ó½ñÌ쿪ʼÿÌì³é³öÒ»¸öСʱѧϰ£¬ÔÚ´Ë×öһЩѧϰ¼Ç¼£¬ÒÔ¹©ÒÔºó²éѯ×ܽᡣ
½ñÌìÊǰ²×°£¬ÊÇÔÚVMwareϰ²×°µÄRed hat 9,°²×°Ï൱˳³©£¬Ò»Â·nextÏÂÈ¥£¬¾ÍOKÁ ......
<1> ÈÎÎñ0µÄ¶ÑÕ»ÎÊÌâ
Ò»Ö±²»Ã÷°×schedule.cÀïµÄtask_unionµÄstackºÍuser_stackÊÇʲô¹ØÏµ£¬head.sÀï¾ÍÉèÖÃÁËespÖ¸Ïòuser_stack, ȴһֱûÓÐÓõ½task_union£¬Ö±µ½¿´µ½INIT_TASK²ÅÃ÷°×£¬´Ó½øÈë±£»¤Ä£Ê½µ½Ìø×ª½øÓû§Ì¬¶¼ÊÇÓõÄuser_stackÕâ¸öÕ»£¬¶øÈÎÎñ0µÄtssÖеÄesp0Ö¸Ïòtask_unionµÄstack, Ò²¾ÍÊǵ±ÈÎÎñ0ÔÙÌø×ª½øÄÚºË ......
µ¥Ïß³Ì
Single-Threaded(static) libc.lib
Debug Single-Threaded(static) & ......
¡¾ÊµÏÖ¹¦ÄÜ¡¿£ºLinuxϵÄC±à³Ì£º±àдһ¸ö³ÌÐò£¨¿â£©£¬ÊµÏÖ¶¨Ê±Æ÷£¨¼ÆÊ±Æ÷£©µÄ¹¦ÄÜ£¬ËüÄÜΪÓû§ÌṩÔÚͬһ½ø³ÌÖжà´ÎʹÓõĶ¨Ê±Æ÷¡£ÕâÀïÒªÇóÓÃÐźÅÀ´ÊµÏÖ¡£
¡¾½âÌâ˼·¡¿£º±àдһ¸ö½á¹¹ÌåTimer´ú±íÒ»¸ö¼ÆÊ±Æ÷£¬È»ºóÔÙ¶¨ÒåTimerÀàÐ͵ÄÊý×émyTimer[N]£¬ÓÃÀ´±£´æÎÒÃÇÉèÖõĶ¨Ê±Æ÷£»ÔÙ¶¨Ò庯ÊýsetTimer£¨£©Éú³É¼ÆÊ±Æ÷£¬²¢½«Éú³É ......