LinuxÏµĶ¨Ê±Æ÷£ºalarm()Óësetitimer()
LinuxÏµĶ¨Ê±Æ÷ÓÐÁ½ÖÖ£¬ÒÔÏ·ֱð½éÉÜ£º
1¡¢alarm
Èç¹û²»ÒªÇóºÜ¾«È·µÄ»°£¬ÓÃalarm()ºÍsignal()¾Í¹»ÁË
unsigned int alarm(unsigned int seconds)
º¯Êý˵Ã÷: alarm()ÓÃÀ´ÉèÖÃÐźÅSIGALRMÔÚ¾¹ý²ÎÊýsecondsÖ¸¶¨µÄÃëÊýºó´«Ë͸øÄ¿Ç°µÄ½ø³Ì¡£Èç¹û²ÎÊýsecondsΪ0£¬Ôò֮ǰÉèÖõÄÄÖÖӻᱻȡÏû£¬²¢½«Ê£ÏµÄʱ¼ä·µ»Ø¡£
·µ»ØÖµ: ·µ»ØÖ®Ç°ÄÖÖÓµÄÊ£ÓàÃëÊý£¬Èç¹û֮ǰδÉèÄÖÖÓÔò·µ»Ø0¡£
alarm()Ö´Ðк󣬽ø³Ì½«¼ÌÐøÖ´ÐУ¬ÔÚºóÆÚ(alarmÒÔºó)µÄÖ´Ðйý³ÌÖн«»áÔÚsecondsÃëºóÊÕµ½ÐźÅSIGALRM²¢Ö´ÐÐÆä´¦Àíº¯Êý¡£
#include
#include
#include
void sigalrm_fn(int sig)
{
printf("alarm!\n");
alarm(2);
return;
}
int main(void)
{
signal(SIGALRM, sigalrm_fn);
alarm(1);
while(1) pause();
}
2¡¢setitimer()
int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue));
setitimer()±Èalarm¹¦ÄÜÇ¿´ó£¬Ö§³Ö3ÖÖÀàÐ͵Ķ¨Ê±Æ÷£º
ITIMER_REAL : ÒÔÏµÍ³ÕæÊµµÄʱ¼äÀ´¼ÆË㣬ËüËͳöSIGALRMÐźš£
ITIMER_VIRTUAL : -ÒԸýø³ÌÔÚÓû§Ì¬Ï»¨·ÑµÄʱ¼äÀ´¼ÆË㣬ËüËͳöSIGVTALRMÐźš£
ITIMER_PROF : ÒԸýø³ÌÔÚÓû§Ì¬ÏºÍÄÚºË̬ÏÂËù·ÑµÄʱ¼äÀ´¼ÆË㣬ËüËͳöSIGPROFÐźš£
setitimer()µÚÒ»¸ö²ÎÊýwhichÖ¸¶¨¶¨Ê±Æ÷ÀàÐÍ£¨ÉÏÃæÈýÖÖÖ®Ò»£©£»µÚ¶þ¸ö²ÎÊýÊǽṹitimervalµÄÒ»¸öʵÀý£»µÚÈý¸ö²ÎÊý¿É²»×ö´¦Àí¡£
setitimer()µ÷Óóɹ¦·µ»Ø0£¬·ñÔò·µ»Ø-1¡£
ÏÂÃæÊǹØÓÚsetitimerµ÷ÓõÄÒ»¸ö¼òµ¥Ê¾·¶£¬ÔÚ¸ÃÀý×ÓÖУ¬Ã¿¸ôÒ»Ãë·¢³öÒ»¸öSIGALRM£¬Ã¿¸ô0.5Ãë·¢³öÒ»¸öSIGVTALRMÐźÅ:
#include
#include
#include
#include
#include
#include
int sec;
void sigroutine(int signo)
{
switch (signo){
case SIGALRM:
printf("Catch a signal -- SIGALRM \n");
signal(SIGALRM, sigroutine);
break;
case SIGVTALRM:
printf("Catch a signal -- SIGVTALRM \n");
signal(SIGVTALRM, sigroutine);
break;
}
return;
}
int main()
{
struct itimerval value, ovalue, value2; //(1)
sec = 5;
printf("process id is %d\n", getpid());
signal(SIGALRM, sigroutine);
signal(SIGVTALRM, sigroutine);
value.it_value.tv_sec = 1;
value.it_value.tv_usec = 0;
value.it_interval.tv_sec = 1;
value.
Ïà¹ØÎĵµ£º
PS1£º¾ÍÊÇÓû§Æ½Ê±µÄÌáʾ·û¡£
¡¡¡¡PS2£ºµÚÒ»ÐÐûÊäÍ꣬µÈ´ýµÚ¶þÐÐÊäÈëµÄÌáʾ·û¡£
¡¡¡¡LinuxϵͳÌáʾ·ûÊÇÓÃϵͳ±äÁ¿PS1À´¶¨ÒåµÄ¡£Ò»°ãϵͳĬÈϵÄÐÎʽÊÇ£º[username@host ¹¤×÷Ŀ¼]$.
¡¡¡¡ÓÃecho $PS1¿ÉÒԵõ½PS1µÄÖµ£¬¼´PS1="[\u@\h \w]"\$
¡¡¡¡µÇ¼ºó¿ÉÒÔ¸ü¸ÄPS1µÄÏÔʾÑùʽ£¬µ«Êǵ±Í˳öÖØÆôµÇ¼½øÈëϵͳºó£¬ÑùʽÓÖ±ä³ ......
POSIX
ÊÇÒ»ÖÖ±ê×¼¹æ·¶£¬Ö÷ÒªÕë¶ÔÔÚ Unix
²Ù×÷ϵͳÉÏÃæÅܵijÌÐòÀ´½øÐй淶¡£ ÈôÄãµÄ²Ù×÷ϵͳ·ûºÏ POSIX £¬Ôò·ûºÏ POSIX µÄ³ÌÐò¾Í¿ÉÒÔÔÚÄãµÄ²Ù×÷ϵͳÉÏÃæÔË×÷¡£ Linux
ÓÉÓÚÖ§³Ö POSIX £¬Òò´ËºÜ¶à Unix ÉϵijÌÐò¿ÉÒÔÖ±½ÓÔÚ Linux ÉÏÔË×÷£¬ Òò´Ë³ÌÐòµÄÒÆÖ²Ï൱¼òÒ×£¡Ò²Èôó¼ÒÈÝÒ×ת»»Æ½Ì¨£¬ÌáÉý
Linux µÄʹÓÃÂÊ¡£
Çý¶¯Óë ......
ÔÚLinuxµÄc±à³ÌÖдó¼Ò¾³£ÓÃgdbµ÷ÊÔ³ÌÐò£¬ÒÔÏÂÊÇһЩ³£ÓõÄÖ¸Áî 1.break FUNCTION ÔÚij¸öº¯ÊýÉÏÉèÖöϵ㡣º¯ÊýÖØÔØÊ±£¬ÓпÉÄÜͬʱÔÚ¼¸¸öÖØÔØµÄº¯ÊýÉÏÉèÖÃÁ˶ϵã
break +OFFSET break -OFFSET ÔÚµ±Ç°³ÌÐòÔËÐе½µÄǰ¼¸Ðлòºó¼¸ÐÐÉèÖöϵã
break LINENUM ÔÚÐкÅΪLINENUMµÄÐÐÉÏÉèÖöϵã
break FILENAME:LINENUM ÔÚÎļþÃûÎ ......
------------LinuxÉϹÒÔØWindows¹²ÏíĿ¼£¨ÖØÆôºóʧЧ£©--------------------
µÚÒ»²½£ºÏÈÔÚWindowsÉÏ´´½¨Ò»¸ö¹²ÏíĿ¼
µÚ¶þ²½£ºÔÚlinuxÖÐÔËÐÐÈçÏÂÃüÁ
mount.cifs //192.168.10.43/shared /root/shared -o user=name,pass=123456
×¢£º/root/sharedÊÇlinuxÉϵÄĿ¼¡£userÊÇWindowsϵͳµÄÓû§Ãû passÊÇWindo ......