Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linuxϵÄumask( )º¯Êý¡¢setsid( )º¯Êý

       umask()º¯Êý£º´Ëº¯ÊýµÄÖ÷Òª×÷ÓÃÊÇÔÚ´´½¨ÎļþʱÉèÖûòÕ߯Á±ÎµôÎļþµÄһЩȨÏÞ¡£Ò»°ãÓëopen()º¯ÊýÅäºÏʹÓá£openº¯ÊýÔ­ÐÍ£º
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int open( const char * pathname, int flags);
int open( const char * pathname,int flags, mode_t mode);
µ±´´½¨Ò»¸öÎļþ²¢ÇÒÒªÃ÷È·Ö¸¶¨´ËÎļþµÄȨÏÞʱ£¬Ó¦¸ÃʹÓõڶþ¸öopen()º¯Êý£¬Ã÷È·Ö¸¶¨mode²ÎÊý£¬Ëù´´½¨µÄÎļþ×îºóµÄȨÏÞÊÇ£ºmode&(~mask)¡£Ä¬ÈϵÄmaskÖµÊÇ£º022
Àý£º
int main()
{
    int fd;
    umask(0026);
    fd = open("test.txt",O_RDWR | O_CREAT,0666);
    if(fd < 0)
        perror("open");
    return 0;
}
ÔòÉú³ÉµÄtest.txtÎļþµÄȨÏÞÊÇ£º666&(~026)½á¹ûÊÇ£º-rw-r--r--¡£Èç¹ûûÓÐumask(0026);ÕâÌõÓï¾ä£¬ÔòÉú³ÉµÄtest.txtÎļþµÄȨÏÞÊÇ£º666&(~022)½á¹ûÊÇ£º-rw-r-----¡£×¢£ºopenº¯ÊýµÄmode²ÎÊýÖ»ÓÐÔÚ´´½¨Îļþʱ²ÅÓÐЧ¡£
      setsid( )˵Ã÷£º½ø³Ì´ÓËüµÄË«Ç×½ø³Ì»ñµÃËüµÄ¶Ô»°¹ý³ÌºÍ½ø³Ì×éʶ±ðºÅ¡£setsid()¾ÍÊǽ«½ø³ÌºÍËüµ±Ç°µÄ¶Ô»°¹ý³ÌºÍ½ø³Ì×é·ÖÀ뿪£¬²¢ÇÒ°ÑËüÉèÖóÉÒ»¸öеĶԻ°¹ý³ÌµÄÁìÍ·½ø³Ì¡£
pid_t pid = fork();
if (pid == 0) {
        ...
        int result = execl(path, "adb", "fork-server", "server", NULL);
} else {
        // run a program in a new session
        setsid();//֮ǰparentºÍchildÔËÐÐÔÚͬһ¸ösessionÀ¶øÇÒparentÊÇsessionÍ·£¬
        //ËùÒÔ×÷ΪsessionÍ·µÄparentÈç¹ûexit½áÊøÖ´Ðеϰ£¬ÄÇô»á»°session×éÖеÄËùÓнø³Ì½«¶¼±»É±ËÀ£»
        //ËùÒÔÖ´ÐÐsetsid()Ö®ºó£¬parent½«ÖØÐ»ñµÃÒ»¸öеĻỰsession×éid£¬child½«ÈÔ³ÖÓÐÔ­ÓеĻỰsession×飬
        //ÕâʱparentÍ˳öÖ®ºó£¬½«²»»áÓ°Ïìµ½childÁË¡£
}
      »á»°sessionÊÇÒ»¸ö»ò¶à¸ö½ø³Ì×éµÄ¼¯ºÏ


Ïà¹ØÎĵµ£º

Linux ¼¼ÇÉ£ºÈýø³ÌÔÚºǫ́¿É¿¿ÔËÐеļ¸ÖÖ·½·¨

¼¶±ð£º Öм¶
Éê Òã (shenyyi@cn.ibm.com), Èí¼þ¹¤³Ìʦ, IBM ÖйúÈí¼þ¿ª·¢ÖÐÐÄ
2008 Äê 5 ÔÂ 29 ÈÕ
ÏëÈýø³ÌÔÚ¶Ï¿ªÁ¬½ÓºóÒÀÈ»±£³ÖÔËÐУ¿Èç¹û¸Ã½ø³ÌÒѾ­¿ªÊ¼ÔËÐÐÁ˸ÃÈçºÎ²¹¾È£¿ Èç¹ûÓдóÁ¿ÕâÀàÐèÇóÈçºÎ¼ò»¯²Ù×÷£¿
ÎÒÃǾ­³£»áÅöµ½ÕâÑùµÄÎÊÌ⣬Óà telnet/ssh µÇ¼ÁËÔ¶³ÌµÄ Linux ·þÎñÆ÷£¬ÔËÐÐÁËһЩºÄʱ½Ï³¤µÄÈÎÎñ£¬ ½á¹ûÈ´ ......

LinuxÉ豸Çý¶¯±à³ÌÖ®¶¨Ê±Æ÷

LinuxÉ豸Çý¶¯±à³ÌÖ®¶¨Ê±Æ÷
2006-10-26 13:34
×÷Õߣº
³ö´¦£ºLinux
ÔðÈα༭£º·½ÖÛ
    Ïà¹Ø×¨Ì⣺
LinuxÉ豸Çý¶¯³ÌÐò¿ª·¢ÈëÃÅ

¡¡¡¡LinuxÄÚºËÖж¨ÒåÁËÒ»¸ötimer_list½á¹¹£¬ÎÒÃÇÔÚÇý¶¯³ÌÐòÖпÉÒÔÀûÓÃÖ®£º
struct timer_list {
¡¡struct list_head list;
¡¡unsigned long expires; //¶¨Ê±Æ÷µ½ÆÚ ......

ÔÚLinux²Ù×÷ϵͳϽ¨Á¢DHCP·þÎñÆ÷

 
DHCPÊÇDynamic Host Configuration ProtocolµÄÓ¢ÎÄËõд£¬·­Òë¹ýÀ´¾ÍÊǶ¯Ì¬Ö÷»úÅäÖÃͨѶЭÒé¡£ËüµÄ¹¦ÄܾÍÊÇÎªÍøÂçÁ¬½Ó¶¯Ì¬·ÖÅäIPµØÖ·£¬ËüÔÊÐí¿Í»§¶Ë¼ÆËã»úÏòÍøÂç·þÎñÆ÷×Ô¶¯»ñÈ¡ÍøÂçÉèÖá£DHCP·þÎñÆ÷ʹµÃÍøÂç¹ÜÀíÔ±ÔÚ¹ÜÀíÍøÂçÖÐÔÚÍøÂçÖÐÔö¼Ó¡¢É¾³ýÍøÂç½Úµã»òÕßÖØÐÂÅäÖÃÍøÂçʱ£¬¹¤×÷±äµÃ·Ç³£¼òµ¥£¬ÎÞÐëÊÖ¹¤µÄ·ÖÅäIPµØÖ ......

ʹÓà GDB µ÷ÊÔ Linux Èí¼þ

×÷Õߣºdio
email: hao@peng.com.cn
ÈÕÆÚ£º8/21/2001 1:00:47 PM
ÄÚÈÝ£º
±àÒë
ÔËÐÐ gdb
µ÷ÊԻỰʾÀý
ʹÓöϵã
¸ü¶à¶ÏµãºÍ¹Û²ìµã
Core Îļþ
¶ÑÕ»¸ú×Ù
Á¬½Óµ½ÆäËü½ø³Ì
ÆäËüС¼¼ÇÉ
½áÊøÓï
²Î¿¼×ÊÁÏ
¹ØÓÚ×÷Õß
GNU µ÷ÊÔÆ÷¼ò½é
×÷Õß:David Seager
Linux µÄ´ó²¿·ÖÌØÉ«Ô´×ÔÓÚ shell µÄ GNU µ÷ÊÔÆ÷ ......

linux »ù±¾ÃüÁî

ʹÓÃTAB¼ü
ÓÃÊó±ê¿½±´ºÍÕ³ÌùÌá¸ß²Ù×÷ËÙ¶È     ×ó¼üÍ϶¯---¿½±´    Öмüµã»÷---Õ³Ìù
1¡¢mkdir ½¨Á¢ÐÂĿ¼Ãû    ¼Ó“." ÔÚĿ¼ÃûǰΪÒþ²ØÄ¿Â¼£¨ls -a¿É²é¿´£©
     rm -rf Ŀ¼Ãû   ɾ³ýĿ¼¼°×ÓĿ¼  rm -- -eeɾ³ý-eeÎļþ  »òÕß rm "ÎļþÃû"

2¡¢m ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ