Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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Çý¶¯Ñ§Ï°¼Ç¼ devfs_mk_cdev

LinuxÇý¶¯Ñ§Ï°¼Ç¼ devfs_mk_cdev


< type="text/javascript">
    
2.4ÄÚºË×¢²áÇý¶¯ÒªÓãº
int register_chrdev (unsigned int major, const char *name, struct file_operations *fops);
2.4ÄÚºË×¢ÏúÇý¶¯ÒªÓãº
int unregister_chrdev( unsigned int ......

ÔÚLinuxÖÐʵÏÖ´óÈÝÁ¿ NAND FlashµÄYAFFS2Îļþϵͳ

·ÖÎöÁËǶÈëʽ»·¾³ÖÐYAFFS/YAFFS2ÎļþϵͳµÄÓŵ㣬Ìá³öYAFFS2²»½öÖ§³ÖСÈÝÁ¿µÄNAND flash£¬¶Ô´óÈÝÁ¿NAND flash¸ü¾ßÓÐÓÅÊÆ¡£²¢½éÉÜÁËYAFFS/YAFFS2Îļþϵͳ½á¹¹¡£×ÅÖØ½«YAFFS2ÎļþϵͳÔÚǶÈëʽLinuxϵͳÖеÄʵÏÖ¹ý³Ì°üÀ¨ÅäÖᢱàÒëÒÔ¼°²âÊÔÕû¸öÍêÕû¹ý³Ì×÷ÁËÏêϸµÄÂÛÊö¡£
¹Ø¼ü´Ê NAND flash£¬YAFFS/YAFFS2£¬Ç¶ÈëʽLinuxϵͳ
......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ