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ÏÂÓÃC×öһЩѧϰºÍ¿ª·¢£¬µ«ÊÇÓÉÓÚ¾Ñé²»×㣬ÎÊÌâ¶à¶à¡£¶ø¶Î´íÎó¾ÍÊÇÈÃÎҷdz£Í·Í´µÄÒ»¸öÎÊÌâ¡£²»¹ý£¬Ä¿Ç°Ð´Ò»¸öһǧÐÐ×óÓҵĴúÂ룬ҲºÜÉÙ³öÏֶδíÎ󣬻òÕßÊǼ´Ê¹³öÏÖÁË£¬Ò²ºÜÈÝÒ×ÕÒ³öÀ´£¬²¢ÇÒ´¦Àíµô¡£
ÄÇʲôÊǶδíÎ󣿶δíÎóΪʲôÊǸöÂ鷳ʣ¿ÒÔ¼°Ôõô·¢ÏÖ³ÌÐòÖеĶΠ......
×î½üÔÚ×¼±¸gre¿¼ÊÔ£¬ÓÚÊÇÕÒÁËÕÒlinuxϵı³µ¥´ÊÈí¼þ£¬¾ÍÊÇÕâ¸öexciteword£¬ºÃÏñÊǸúÇáÇáËÉËɱ³µ¥´Ê²î²»¶à£¬Í¦ºÃÓõġ£
°²×°·½·¨£º
ubuntuÏÂ×î¼òµ¥µÄ·½·¨¾ÍÊÇapt-get installÁË¡£
»¹¿ÉÒÔ´Ó¹ÙÍøÉÏÏÂÔØrpm°ü£¬Ê¹ÓÃalienתΪdeb°ü¡£alien¹¤¾ßûÓеϰ¿ÉÒÔʹÓÃapt-get install alienÀ´ÏÂÔØ¡£×ª»¯Îªdeb°üºó£¬Ë«»÷×Ô¶¯°²×°¾Í¿ÉÒ ......
LinuxÉ豸Çý¶¯±à³ÌÖ®¶¨Ê±Æ÷
2006-10-26 13:34
×÷Õߣº
³ö´¦£ºLinux
ÔðÈα༣º·½ÖÛ
Ïà¹Ø×¨Ì⣺
LinuxÉ豸Çý¶¯³ÌÐò¿ª·¢ÈëÃÅ
¡¡¡¡LinuxÄÚºËÖж¨ÒåÁËÒ»¸ötimer_list½á¹¹£¬ÎÒÃÇÔÚÇý¶¯³ÌÐòÖпÉÒÔÀûÓÃÖ®£º
struct timer_list {
¡¡struct list_head list;
¡¡unsigned long expires; //¶¨Ê±Æ÷µ½ÆÚ ......
ÔÚ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ÊÇrethat9£¬¶ÔÆäËûµÄ°æ±¾¿ÉÄܲ»ÊÊÓÃ
xpϵͳϵÄÐéÄâ»úÖа²×°ÁËlinuxºó£¬ÐéÄâ»úVMwareÖеÄlinux½çÃæÌ«Ð¡£¬ÊÇÓÉÓÚlinux·Ö±æÂÊÌ«µÍ(ͨ³£Îª800×600)Ôì³ÉµÄ£¬¿ÉÒÔͨ¹ý°²×°VMware ToolsÀ´¸ü¸Ä·Ö±æÂʵ½1024×768À´½â¾öÕâ¸öÎÊÌ⣬ÏÂÃæËµÃ÷°²×° ......