Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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 ±à³Ì¶Î´íÎó£¨segmentation error£©×ܽá

   ×î½üÒ»¶Îʱ¼äÔÚlinuxÏÂÓÃC×öһЩѧϰºÍ¿ª·¢£¬µ«ÊÇÓÉÓÚ¾­Ñé²»×㣬ÎÊÌâ¶à¶à¡£¶ø¶Î´íÎó¾ÍÊÇÈÃÎҷdz£Í·Í´µÄÒ»¸öÎÊÌâ¡£²»¹ý£¬Ä¿Ç°Ð´Ò»¸öһǧÐÐ×óÓҵĴúÂ룬ҲºÜÉÙ³öÏֶδíÎ󣬻òÕßÊǼ´Ê¹³öÏÖÁË£¬Ò²ºÜÈÝÒ×ÕÒ³öÀ´£¬²¢ÇÒ´¦Àíµô¡£
    ÄÇʲôÊǶδíÎ󣿶δíÎóΪʲôÊǸöÂ鷳ʣ¿ÒÔ¼°Ôõô·¢ÏÖ³ÌÐòÖеĶΠ......

linuxÏÂÒ»¿î²»´íµÄ±³µ¥´ÊÈí¼þ£¨reciteword£©

×î½üÔÚ×¼±¸gre¿¼ÊÔ£¬ÓÚÊÇÕÒÁËÕÒlinuxϵı³µ¥´ÊÈí¼þ£¬¾ÍÊÇÕâ¸öexciteword£¬ºÃÏñÊǸúÇáÇáËÉËɱ³µ¥´Ê²î²»¶à£¬Í¦ºÃÓõġ£
°²×°·½·¨£º
ubuntuÏÂ×î¼òµ¥µÄ·½·¨¾ÍÊÇapt-get installÁË¡£
»¹¿ÉÒÔ´Ó¹ÙÍøÉÏÏÂÔØrpm°ü£¬Ê¹ÓÃalienתΪdeb°ü¡£alien¹¤¾ßûÓеϰ¿ÉÒÔʹÓÃapt-get install alienÀ´ÏÂÔØ¡£×ª»¯Îªdeb°üºó£¬Ë«»÷×Ô¶¯°²×°¾Í¿ÉÒ ......

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

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

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

linuxÎÄÕÂ

ÔÚLinuxÏÂJdkµÄ°²×°ºÍJava»·¾³±äÁ¿µÄÉèÖÃ
ÔÚLinuxÏÂJdkµÄ°²×°ºÍJava»·¾³±äÁ¿µÄÉèÖÃ
1¡¢µ½www.sun.comÏÂÔØ×îа汾µÄj2sdk for linux
2¡¢°²×°jdk1.4.2 for linux,ÒÔÏÂÊÇÔÚRedhat Linux 9ÏÂΪÀý£º
   ÒÔrootÉí·ÝµÇ¼
   (1)´ò¿ªÒ»¸öÖÕ¶Ë
   (2)ÊäÈëÃüÁîls -l ²é¿´°²×°ÎļþµÄȨÏÞ
  ......

¹ØÓÚ¸ü¸ÄÐéÄâ»úÏÂlinux·Ö±æÂʵÄÒ»µã¾­Ñé

     Ê×ÏÈ˵Ã÷£¬±¾È˵ÄlinuxÊÇrethat9£¬¶ÔÆäËûµÄ°æ±¾¿ÉÄܲ»ÊÊÓÃ
     xpϵͳϵÄÐéÄâ»úÖа²×°ÁËlinuxºó£¬ÐéÄâ»úVMwareÖеÄlinux½çÃæÌ«Ð¡£¬ÊÇÓÉÓÚlinux·Ö±æÂÊÌ«µÍ(ͨ³£Îª800×600)Ôì³ÉµÄ£¬¿ÉÒÔͨ¹ý°²×°VMware ToolsÀ´¸ü¸Ä·Ö±æÂʵ½1024×768À´½â¾öÕâ¸öÎÊÌ⣬ÏÂÃæËµÃ÷°²×° ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ