LINUXÆÚÄ©¸´Ï° ½ø³ÌÓë½ø³Ì¹ÜÀí
Ò»¡¢LINUXµÄ½ø³Ì״̬ ½©ËÀ̬£ºµ±¸¸½ø³Ì»¹Ã»ÓнáÊøÇ°£¬×Ó½ø³Ì¾ÍÒѾÏȽáÊøÁË£¬Õâʱ×Ó½ø³ÌµÄ×ÊԴûÓÐÈËÀ´»ØÊÕ¡£Í¨³£¸¸½ø³ÌÐèÒªÓÃwaitÀ´µÈ´ý×Ó½ø³ÌµÄ½áÊø¡£
½ø³ÌµÄģʽ£ºÓû§Ä£Ê½(Ö´ÐÐÓû§³ÌÐò)£¬ÄÚºËģʽ(Ö´ÐвÙ×÷ϵͳ´úÂë)
½ø³ÌµÄÀàÐÍ£ºÏµÍ³½ø³Ì£¬Óû§½ø³Ì ¶þ¡¢½ø³Ì¹ÜÀí ¢Ùforkº¯Êý
¹¦ÄÜ£º´´½¨Ò»¸öȫеĽø³Ì¡£
Í·Îļþ£º
#include
#include
º¯ÊýÔÐÍ£ºpid_t wait (int * status);
˵Ã÷£ºÕâ¸öϵͳµ÷ÓöԵ±Ç°½ø³Ì½øÐи´ÖÆ£¬ÔÚ½ø³Ì±íÀï´´½¨³öÒ»¸öÏîÄ¿£¬Ð½ø³ÌÓëÔ½ø³Ì¼¸ºõÒ»Ñù£¬Ö´ÐеÄÊÇÏàͬµÄ´úÂ룬ֻÊÇнø³ÌÓÐ×Ô¼ºµÄÊý¾Ý¿Õ¼ä¡¢»·¾³ºÍÎļþÃèÊö·û¡£
·µ»ØÖµ£º¸¸½ø³Ìµ÷Ó÷µ»ØÐÂ×Ó½ø³ÌID£¬Ð½ø³Ì¼ÌÐøÖ´ÐУ»ÔÚ×Ó½ø³Ì·µ»Ø0¡£
¾ÙÀý£º
pid_t new_pid;
new_pid = fork();
switch(new_pid)
{
case -1:break;
case 0:break
default:break;
} ¢Úwaitº¯Êý
º¯Êý´¦ÀíµÄ»ù±¾¹ý³Ì£º
—Èç¹û¸¸½ø³ÌûÓÐ×Ó½ø³Ì£¬Ôò³ö´í·µ»Ø¡£
—Èç¹û·¢ÏÖÓÐÒ»¸öÖÕÖ¹µÄ×Ó½ø³Ì£¬ÔòÈ¡³ö×Ó½ø³ÌµÄ½ø³ÌºÅ£¬°Ñ×Ó½ø³ÌµÄCPUʹÓÃʱ¼äµÈ¼Óµ½¸¸½ø³ÌÉÏ£¬ÊÍ·Å×Ó½ø³ÌÕ¼ÓõÄtask_structºÍϵͳ¿Õ¼ä¶ÑÕ»£¬ÒÔ¹©Ð½ø³ÌʹÓá£
—Èç¹û·¢ÏÖÓÐ×Ó½ø³Ì£¬µ«¶¼²»´¦ÓÚÖÕֹ̬£¬Ôò¸¸½ø³Ì˯Ãߣ¬µÈ´ýÓÉÏàÓ¦µÄÐźŻ½ÐÑ¡£
¹¦ÄÜ£ºµÈ´ý×Ó½ø³ÌÖжϻò½áÊø
Í·Îļþ:
#include
#include
º¯ÊýÔÐÍ:pid_t wait (int * status);
˵Ã÷£ºº¯Êý»áÔÝʱֹͣĿǰ½ø³ÌµÄÖ´ÐУ¬Ö±µ½ÓÐÐźÅÀ´µ½»ò×Ó½ø³Ì½áÊø¡£Èç¹ûÔÚµ÷ÓÃwait()ʱ×Ó½ø³ÌÒѾ½áÊø£¬Ôòwait()»áÁ¢¼´·µ»Ø×Ó½ø³Ì½áÊø×´Ì¬Öµ¡£×Ó½ø³ÌµÄ½áÊø×´Ì¬Öµ»áÓɲÎÊýstatus ·µ»Ø£¬¶ø×Ó½ø³ÌµÄ½ø³Ìʶ±ðÂëÒ²»áͬʱ·µ»Ø¡£Èç¹û²»ÔÚÒâ½áÊø×´Ì¬Öµ£¬Ôò²ÎÊýstatus¿ÉÒÔÉè³ÉNULL¡£×Ó½ø³ÌµÄ½áÊø×´Ì¬ÖµÇë²Î¿¼waitpid()¡£
·µ»ØÖµ£ºÈç¹ûÖ´Ðгɹ¦Ôò·µ»Ø×Ó½ø³Ìʶ±ðÂë(PID)£¬Èç¹ûÓдíÎó·¢ÉúÔò·µ»Ø-1¡£Ê§°ÜÔÒò´æÓÚerrnoÖС£
¾ÙÀý£º
¢Ûexeclº¯Êý
Í·Îļþ£º#include
º¯ÊýÔÐÍ£º
int execl(const char * path,const char * arg,....);
·µ»ØÖµ£º³É¹¦Ôòº¯Êý²»»á·µ»Ø£¬Ö´ÐÐʧ°ÜÔòÖ±½Ó·µ»Ø-1£¬Ê§°ÜÔÒò´æÓÚerrnoÖС£
˵Ã÷£º
execl()ÓÃÀ´Ö´ÐвÎÊýpath×Ö·û´®Ëù´ú±íµÄÎļþ·¾¶£¬²ÎÊý´ú±íÖ´ÐиÃÎļþʱ´«µÝ¹ýÈ¥µÄargv(0)¡¢argv[1]¡¡£¬×îºóÒ»¸ö²ÎÊý±ØÐëÓÿÕ
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
ÒªÔÚ¹¤×÷Õ¾ÏÔʾÎļþ£¬ÇëÊäÈ룺
cat notes
´ËÃüÁî»áÏÔʾ notes ÎļþÖеÄÊý¾Ý¡£Èç¹û¸ÃÎļþµÄÐÐÊý´óÓÚ¿ÉÓÃÆÁÄ»ÐÐÊý¼õÒ»µÄÖµ£¬ÔòÎļþµÄ²¿·ÖÄÚÈÝ»á¹ö³öÆÁÄ»¡£ÒªÃ¿´Î½«ÎļþÁÐÔÚÒ»Ò³ÉÏ£¬Ê¹Óà pg ÃüÁî¡£
Òª²¢Öü¸¸öÎļþ£¬ÇëÊäÈ룺
cat section1.1 section1.2 section1.3 >section1
´ËÃüÁ ......
ÔÚlinuxÖÐËùÓеÄsyscall¶¼Êǵ÷ÓÃint 0x80, int 0x80µÄÖжϷþÎñ³ÌÐòΪsystem_call(arch/x86/kernel/traps_32.c:set_system_gate(SYSCALL_VECTOR,&system_call). system_call (arch/x86/entry_32.S)×îÖÕcall *sys_call_table(,%eax,4)À´Íê³ÉÒ»¸ösyscallµ÷ÓÃ.
¼´ int 0x80 -> system_call -> s ......
yum-protectbaseÔÚCentOS 5°ü²Ö¿âÀïÃæÓÐÌṩ:
#yum install yum-protectbase
ÔÚCentOS 5ÀïÃæÕâ¸ö²å¼þĬÈÏÆô¶¯ .
±à¼/etc/yum.repos.d/CentOS-Base.repo ,
ÔÚ [base]
¡¢[update]
¡¢[centosplus]
¶ÎÄ©¼ÓÉÏÒ»ÐÐ:
protect=1
Èà [centosplus] ¶ÎʧЧÈçÏÂ:
enabled=0
±à¼/etc/yum.repos.d/CentOS-Base.repo £¬
Ô ......
vi /etc/rc.d/rc.local
Ôö¼Ó£º/usr/local/httpd/bin/apachectl start
2£º[×¢²áΪService]
cp /usr/local/httpd/bin/apachectl /etc/rc.d/init.d/httpd
vi httpd
ÕÒµ½£º#!/bin/sh
ÁíÆðÒ»ÐУ¬Ôö¼Ó£º
# chkconfig: 35 70 30
ÆäÖÐËùÔö¼ÓµÄµÚ¶þÐÐÖÐÈý¸öÊý×ÖµÚÒ»¸ö±íʾÔÚÔËÐм¶±ð3ºÍ5ÏÂÆô¶¯apache£¬µÚ¶þ¡¢ÈýÊǹØÓÚÆô¶¯ºÍÍ ......