Linux ÐźÅsignal´¦Àíº¯Êý
×î½ü×öµÄ¶«Î÷»¹ÕæÊÇÔÓÂÒÎÞÕÂ, Óеã¸ú²»ÉϽø¶È,½Ó´¥µÄ¶¼ÊÇδ֪µÄ¶«Î÷.¼ÌÐøÀ©³ä..
alarm£¨ÉèÖÃÐźŴ«ËÍÄÖÖÓ£©
Ïà¹Øº¯Êý signal£¬sleep
±íÍ·Îļþ #include<unistd.h>
¶¨Ò庯Êý unsigned int alarm(unsigned int seconds);
º¯Êý˵Ã÷ alarm()ÓÃÀ´ÉèÖÃÐźÅSIGALRMÔÚ¾¹ý²ÎÊýsecondsÖ¸¶¨µÄÃëÊýºó´«Ë͸øÄ¿Ç°µÄ½ø³Ì¡£Èç¹û²ÎÊýseconds Ϊ0£¬Ôò֮ǰÉèÖõÄÄÖÖӻᱻȡÏû£¬²¢½«Ê£ÏµÄʱ¼ä·µ»Ø¡£
·µ»ØÖµ·µ»ØÖ®Ç°ÄÖÖÓµÄÊ£ÓàÃëÊý£¬Èç¹û֮ǰδÉèÄÖÖÓÔò·µ»Ø0¡£
·¶Àý #include<unistd.h>
#include<signal.h>
void handler() {
printf("hello\n");
}
main()
{
int i;
signal(SIGALRM,handler);
alarm(5);
for(i=1;i<7;i++){
printf("sleep %d ...\n",i);
sleep(1);
}
}
Ö´ÐÐ sleep 1 ...
sleep 2 ...
sleep 3 ...
sleep 4 ...
sleep 5 ...
hello
sleep 6 ...
¡¡
kill£¨´«ËÍÐźŸøÖ¸¶¨µÄ½ø³Ì£©
Ïà¹Øº¯Êý raise£¬signal
±íÍ·Îļþ #include<sys/types.h>
#include<signal.h>
¶¨Ò庯Êý int kill(pid_t pid,int sig);
º¯Êý˵Ã÷ kill()¿ÉÒÔÓÃÀ´ËͲÎÊýsigÖ¸¶¨µÄÐźŸø²ÎÊýpidÖ¸¶¨µÄ½ø³Ì¡£²ÎÊýpidÓм¸ÖÖÇé¿ö:
pid>0 ½«ÐźŴ«¸ø½ø³Ìʶ±ðÂëΪpid µÄ½ø³Ì¡£
pid=0 ½«ÐźŴ«¸øºÍĿǰ½ø³ÌÏàͬ½ø³Ì×éµÄËùÓнø³Ì
pid=-1 ½«ÐźŹ㲥´«Ë͸øÏµÍ³ÄÚËùÓеĽø³Ì
pid<0 ½«ÐźŴ«¸ø½ø³Ì×éʶ±ðÂëΪpid¾ø¶ÔÖµµÄËùÓнø³Ì
²ÎÊýsig´ú±íµÄÐźűàºÅ¿É²Î¿¼¸½Â¼D
·µ»ØÖµ Ö´Ðгɹ¦Ôò·µ»Ø0£¬Èç¹ûÓдíÎóÔò·µ»Ø-1¡£
´íÎó´úÂë EINVAL ²ÎÊýsig ²»ºÏ·¨
ESRCH ²ÎÊýpid ËùÖ¸¶¨µÄ½ø³Ì»ò½ø³Ì×é²»´æÔÚ
EPERM ȨÏÞ²»¹»ÎÞ·¨´«ËÍÐźŸøÖ¸¶¨½ø³Ì
·¶Àý #include<unistd.h>
#include<signal.h>
#include<sys/types.h>
#include<sys/wait.h>
main()
{
pid_t pid;
int status;
if(!(pid= fork())){
printf("Hi I am child process!\n");
sleep(10);
return;
}
else{
printf("send signal to child process (%d) \n",pid);
sleep(1);
kill(pid ,SIGABRT);
wait(&status);
if(WIFSIGNALED(status))
printf("chile process receive signal %d\n",WTERMSIG(status));
}
}
Ö´ÐÐ sen signal to child process(3170)
Hi I am child process!
child process receive signal 6
pause£¨Èýø³ÌÔÝÍ£Ö±µ½ÐźųöÏÖ£©
Ïà¹Øº¯Êý kill£¬signal£¬sleep
±íÍ·Îļþ #include<unistd.h>
¶¨
Ïà¹ØÎĵµ£º
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
ͨ¹ý±à¼/etc/inittabÀïµÄid:5:initdefault:ÕâÒ»Ðеİ¢À²®Êý×Ö£¬¿ÉʵÏÖÆô¶¯Ä£Ê½µÄת»»¡£ÀýÈ罫
id:5:initdefault:ÐÞ¸ÄΪid:3:initdefault:ÖØÐÂÆô¶¯ÏµÍ³ºó£¬ÎÒÃǿɿ´µ½ÔÀ´µÄX-WindowͼÐβÙ×÷½çÃæ×ª»»³ÉÁË
Console×Ö·û½çÃæ¡£
ÔÚ×Ö·û½çÃæÏ´òÈëÃüÁîstartx¿É½øÈëͼÐνçÃæ£¬Í¼ÐνçÃæÏ¼üÈëctrl+alt+backspace½øÈë×Ö·û½çÃæ¡ ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
ÔÚ±¾ÎÄÖУ¬Ëùν“
Linux
֮·”ÊÇָͨÏòÍêÃÀ
Linux
×ÀÃæµÄµÀ·¡£Ì¸Æð
Linux
×ÀÃæ£¬ÓÐÈ˲»Ð¼Ò»¹Ë£¬àÍÖ®ÒԱǡ£Êµ¼ÊÇé¿öÈçºÎ£¿
11
ÔÂ
......
liunuxÈëÃų£ÓÃÃüÁî
liunux
2009-04-13 17:04
ÔĶÁ200 ÆÀÂÛ0
×ֺţº
´ó
´ó
ÖÐ
ÖÐ
С
С
¡¡Linux³£ÓÃÃüÁîµÄ·ÖÀà½éÉÜ£º
......
ij¸öÈÕ¼ûÖØÒªµÄÍøÂçоƬ¹«Ë¾¼´½«ÊÕ¹ºÒ»¼Ò×îÔçµãÉÌÒµ»¯Ç¶ÈëʽLinux µÄ¹«Ë¾¡£ Cavium ¹«Ë¾ÒÑͬÒâÖ§¸¶5000 ÍòÃÀÔª¸øÒѾ¶ÀÁ¢ÔËÐÐÊ®ÄêÖ®¾ÃµÄ MontaVista ¹«Ë¾¡£
ÕâÊǽñÄêµÚ¶þÀýǶÈëʽLinux ²Ù×÷ϵͳ¡¢¹¤¾ß¼°·þÎñÊг¡µÄ²¢¹º°¸Àý¡£µÚÒ»ÀýÊÇÔÚ½ñÄêÎåÔ£¬µ±Ê±Ó¢Ìضû»¨·Ñ 88400 ÍòÃÀÔªÊÕ¹º Wind River ϵͳ¹«Ë¾¡£ÈçͬWind River ÊÕ ......