Linux ϵͳʱ¼äÉèÖᢱà³Ì×ܽá
δÍê´ýÐø...
ÉèÖÃʱ¼ä£º
date -s "2009/11/08 11:23:00"
Ó²¼þʱÖÓÓëϵͳʱ¼äͬ²½Ò»Ï£º
hwclock --systohc
±à³Ì£º
#include <cstdlib>
time_t time(time_t *timer)
µ÷Óú󽫵±Ç°ÏµÍ³Ê±¼äÓë1900Äê1ÔÂ1ÈÕÏà²îµÄÃëÊý´æÈëµ½timerÖУ¬timer¿É¿´³ÉÊÇÒ»¸ö³¤ÕûÐÍÊý
¾ßÌåÃèÊö£º
º¯ÊýÔÐÍ£º time_t time(time_t *timer)
º¯ÊýÓÃ;£º µÃµ½»úÆ÷µÄÈÕÀúʱ¼ä»òÕßÉèÖÃÈÕÀúʱ¼ä
Í· ÎÄ ¼þ£º time.h
ÊäÈë²ÎÊý£º timer:=NULLʱ£¬µÃµ½»úÆ÷ÈÕÀúʱ¼ä,=ʱ¼äÊýֵʱ ÓÃÓÚÉèÖÃÈÕÀúʱ¼ä;
struct tm* localtime(const time_t *timer)
½«time()º¯Êýµ÷ÓõĽá¹û×öΪ²ÎÊý´«Èëµ½localtime()º¯ÊýÖоÍÄܵõ½µ±Ç°Ê±¼äºÍÈÕÆÚ£¬×¢ÒâµÃµ½µÄÄêÊǺÍ1970µÄ²îÖµ£¬Ô·ÝÊǺÍ1ÔµIJîÖµ
struct tmÊÇÒ»¸ö½á¹¹Ì壬¶¨ÒåÈçÏÂ:
struct tm
{
int tm_sec; //µ±Ç°Ãë
int tm_min; //µ±Ç°·ÖÖÓ
int tm_hour; //µ±Ç°Ð¡Ê±
int tm_mday; //µ±Ç°ÔÚ±¾ÔÂÖеÄÌ죬Èç11ÔÂ1ÈÕ£¬ÔòΪ1
int tm_mon; //µ±Ç°Ô£¬·¶Î§ÊÇ0~11
int tm_year; //µ±Ç°ÄêºÍ1900µÄ²îÖµ£¬Èç2006ÄêÔòΪ36
int tm_wday; //µ±Ç°ÔÚ±¾ÐÇÆÚÖеÄÌ죬·¶Î§0~6
int tm_yday; //µ±Ç°ÔÚ±¾ÄêÖеÄÌ죬·¶Î§0~365
int tm_isdst; //Õâ¸öÎÒÒ²²»Çå³þ
}
×¢Ò⣺·µ»ØµÄtm* Ö¸ÏòÒ»¸östaticλÖã¬Ã¿´Îµ÷Ó÷µ»ØµÄ¶¼ÊÇÕâ¸ö¾²Ì¬ÇøÓò£¬ÕâÒ²¾ÍÊDz»ÐèÒªdelete tmµÄÔÒò¡£
Çóµ±Ç°Ê±¼äµÄʾÀý
int getSystemTime()
{
time_t timer;
struct tm* t_tm;
time(&timer);
t_tm = localtime(&timer);
printf("today is %4d%02d%02d%02d%02d%02d\n", t_tm.tm_year+1900,
t_tm.tm_mon+1, t_tm.tm_mday, t_tm.tm_hour, t_tm.tm_min, t_tm.tm_sec);
return 0;
}
ÆäËûʱ¼äµÄº¯ÊýºÍ½á¹¹»¹ÓУº
timeval½á¹¹
#include <include/linux/time.h>
struct timeval
{
time_t tv_sec;
susecond_t tv_usec; //µ±Ç°ÃîÄÚµÄ΢ÃîÊý
};
tms½á¹¹
±£´æ×ÅÒ»¸ö½ø³Ì¼°Æä×Ó½ø³ÌʹÓõÄcpuʱ¼ä
struct tms
{
clock_t tms_utime;
clock_t tms_stime;
clock_t tms_cutime;
clock_t tms_cstime;
}
timer_struct½á¹¹
#include <include/linux/timer.h>
struct timer_struct
{
unsigned long expires; //¶¨Ê±Æ÷±»¼¤»îµÄʱ
Ïà¹ØÎĵµ£º
LinuxµÄÒ»¸öÎüÒýÈ˵ÄÌØÐÔ¾ÍÊÇÓû§¿ÉÒÔ×ÔÐж¨ÖÆÕû¸öϵͳ£¬Äã¿ÉÊÇÔËÐÐÒ»¸öÖ»ÓÐ1MµÄ“ÃÔÄã”Linux£¬Ò²¿ÉÒÔÔËÐÐÒ»¸ö¼¸GµÄÇ¿´óLinux¡£¶øÎÞÂÛÄãÔËÐÐÔõÑùµÄLinux£¬Äã¶¼ÊÇÏÈ´ÓÒýµ¼³ÌÐò¿ªÊ¼ÔËÐеġ£¶ÔÓÚÆÕͨÓû§£¬´ó¶à¶¼ÊÇÔÚ¸öÈ˵çÄÔÉÏÔËÐÐLinuxµÄ¡£
¡¡¡¡¸öÈ˵çÄÔ£¬ÓÖ½ÐPC»ú£¬ÊÇÎÒÃdz£¼ûµÄʹÓÃIntel»òAMDµÄоƬµÄµç ......
ShellÊÇϵͳµÄÓû§½çÃæ£¬ÌṩÁËÓû§ÓëÄں˽øÐн»»¥²Ù×÷µÄÒ»ÖÖ½Ó¿Ú¡£Ëü½ÓÊÕÓû§ÊäÈëµÄÃüÁî²¢°ÑËüËÍÈëÄÚºËÈ¥Ö´ÐС£
¡¡¡¡Êµ¼ÊÉÏShellÊÇÒ»¸öÃüÁî½âÊÍÆ÷£¬Ëü½âÊÍÓÉÓû§ÊäÈëµÄÃüÁî²¢ÇÒ°ÑËüÃÇË͵½Äںˡ£²»½öÈç´Ë£¬ShellÓÐ×Ô¼ºµÄ±à³ÌÓïÑÔÓÃÓÚ¶ÔÃüÁîµÄ±à¼£¬ËüÔÊÐíÓû§±àдÓÉshellÃüÁî×é³ÉµÄ³ÌÐò¡£Shell±à³ÌÓïÑÔ¾ßÓÐÆÕͨ±à³ÌÓ ......
sys_execve
| - do_execve
|
| - search_binary_handler
|- linux_binfmt= elf_format
|- elf_format-> load_elf_binary
| -&nbs ......
Áù£ºkmem_cache_allocµÄʵÏÖ·ÖÎö:
ÎÒÃÇÔÚÉÏÃæ¿ÉÒÔ¿´µ½£¬´´½¨Ò»¸öcacheÃèÊö·ûµÄʱºò£¬²¢Ã»ÓÐÕâÖ®·ÖÅäslabÊý¾Ý¡£ÏÖÔÚÎÒÃÇÀ´¿´Ò»ÏÂÔõô´ÓcacheÖÐÉêÇë¶ÔÏó
void * kmem_cache_alloc (kmem_cache_t *cachep, int flags)
{
return __cache_alloc(cachep, flags);
}
ʵ¼ÊÉÏ»áµ÷ÓÃ__cache_allo ......
ÒÔǰÒѾ½Ó´¥WindowsϵÄSocket±à³Ì£¬×î½üÒ²³¢ÊÔ×ÅÔÙlinuxÏÂʹÓÃSocket±à³Ì£¬ÏÂÃæÊÇÔÚÍøÉÏÕÒµÄÀý×Ó(ÒѾ²âÊÔ¹ý)
tcp_server.c:
#include <stdio.h>
#include <sys/socket.h>
#include <unistd.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <stdlib.h>
# ......