?? 07.htm
字號:
<TD> <DIV align=left><FONT face=宋體 size=2><BR>getegid(取得有效的組識別碼) </FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關(guān)函數(shù) </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>getgid,setgid,setregid<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>#include<unistd.h><BR>#include<sys/types.h><BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數(shù) </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>gid_t getegid(void);<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數(shù)說明 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>getegid()用來取得執(zhí)行目前進(jìn)程有效組識別碼。有效的組識別碼用來決定進(jìn)程執(zhí)行時(shí)組的權(quán)限。返回值返回有效的組識別碼。<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>main()<BR>{ <BR>printf("egid is %d\n",getegid());<BR>}<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>執(zhí)行 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>egid is 0 /*當(dāng)使用root身份執(zhí)行范例程序時(shí)*/<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc96></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2><BR>geteuid(取得有效的用戶識別碼) </FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關(guān)函數(shù) </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>getuid,setreuid,setuid<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>#include<unistd.h><BR>#include<sys/types.h><BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數(shù) </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>uid_t geteuid(void)<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數(shù)說明 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>geteuid()用來取得執(zhí)行目前進(jìn)程有效的用戶識別碼。有效的用戶識別碼用來決定進(jìn)程執(zhí)行的權(quán)限,借由此改變此值,進(jìn)程可以獲得額外的權(quán)限。倘若執(zhí)行文件的setID位已被設(shè)置,該文件執(zhí)行時(shí),其進(jìn)程的euid值便會(huì)設(shè)成該文件所有者的uid。例如,執(zhí)行文件/usr/bin/passwd的權(quán)限為-r-s--x--x,其s 位即為setID(SUID)位,而當(dāng)任何用戶在執(zhí)行passwd 時(shí)其有效的用戶識別碼會(huì)被設(shè)成passwd 所有者的uid 值,即root的uid 值(0)。<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>返回有效的用戶識別碼。<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>main()<BR>{ <BR>printf ("euid is %d \n",geteuid());<BR>}<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>執(zhí)行 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>euid is 0 /*當(dāng)使用root身份執(zhí)行范例程序時(shí)*/<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc97></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2><BR>getgid(取得真實(shí)的組識別碼) </FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關(guān)函數(shù) </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>getegid,setregid,setgid<BR></FONT></DIV></TD></TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>#include<unistd.h><BR>#include<sys/types.h><BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數(shù) </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>gid_t getgid(void);<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數(shù)說明 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>getgid()用來取得執(zhí)行目前進(jìn)程的組識別碼。<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>返回組識別碼<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>main()<BR>{<BR>printf(“gid is %d\n”,getgid());<BR>}<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>執(zhí)行 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>gid is 0 /*當(dāng)使用root身份執(zhí)行范例程序時(shí)*/<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc98></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2><BR>getgrent(從組文件中取得賬號的數(shù)據(jù)) </FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關(guān)函數(shù) </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>setgrent,endgrent<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>#include<grp.h><BR>#include <sys/types.h><BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數(shù) </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>struct group *getgrent(void);<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數(shù)說明 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>getgrent()用來從組文件(/etc/group)中讀取一項(xiàng)組數(shù)據(jù),該數(shù)據(jù)以group 結(jié)構(gòu)返回。第一次調(diào)用時(shí)會(huì)取得第一項(xiàng)組數(shù)據(jù),之后每調(diào)用一次就會(huì)返回下一項(xiàng)數(shù)據(jù),直到已無任何數(shù)據(jù)時(shí)返回NULL。<BR>struct group{<BR>char *gr_name; /*組名稱*/<BR>char *gr_passwd; /* 組密碼*/<BR>gid_t gr_gid; /*組識別碼*/<BR>char **gr_mem; /*組成員賬號*/<BR>}<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>返回group結(jié)構(gòu)數(shù)據(jù),如果返回NULL則表示已無數(shù)據(jù),或有錯(cuò)誤發(fā)生。<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>附加說明 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>getgrent()在第一次調(diào)用時(shí)會(huì)打開組文件,讀取數(shù)據(jù)完畢后可使用endgrent()來關(guān)閉該組文件。<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>錯(cuò)誤代碼 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>ENOMEM 內(nèi)存不足,無法配置group結(jié)構(gòu)。<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>#include<grp.h><BR>#include<sys/types.h><BR>main()<BR>{<BR>struct group *data;<BR>int i;<BR>while((data= getgrent())!=0){<BR>i=0;<BR>printf(“%s:%s:%d:”,data->gr_name,data->gr_passwd,data->gr_gid);<BR>while(data->gr_mem[i])printf(“%s,”,data->gr_mem[i++]);<BR>printf(“\n”);<BR>}<BR>endgrent();<BR>}<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>執(zhí)行 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>root:x:0:root,<BR>bin:x:1:root,bin,daemon,<BR>daemon:x:2:root,bin,daemon,<BR>sys:x:3:root,bin,adm,<BR>adm:x:4:root,adm,daemon<BR>tty:x:5<BR>disk:x:6:root<BR>lp:x:7:daemon,lp<BR>mem:x:8<BR>kmem:x:9:<BR>wheel:x:10:root<BR>mail:x:12:mail<BR>news:x:13:news<BR>uucp:x:14:uucp<BR>man:x:15:<BR>games:x:20<BR>gopher:x:30<BR>dip:x:40<BR>ftp:x:50<BR>nobody:x:99<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc99></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2><BR>getgrgid(從組文件中取得指定gid 的數(shù)據(jù)) </FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關(guān)函數(shù) </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>fgetgrent,getgrent,getgrnam<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>#include<grp.h><BR>#include<sys/types.h><BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數(shù) </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>strcut group * getgrgid(gid_t gid);<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數(shù)說明 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>getgrgid()用來依參數(shù)gid指定的組識別碼逐一搜索組文件,找到時(shí)便將該組的數(shù)據(jù)以group結(jié)構(gòu)返回。group結(jié)構(gòu)請參考getgrent()。<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>返回group結(jié)構(gòu)數(shù)據(jù),如果返回NULL則表示已無數(shù)據(jù),或有錯(cuò)誤發(fā)生。<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>/* 取得gid=3的組數(shù)據(jù)*/<BR>#include<grp.h><BR>#include<sys/types.h><BR>main()<BR>{<BR>strcut group *data;<BR>int i=0;<BR>data = getgrgid(3);<BR>printf(“%s:%s:%d:”,data->gr_name,data->gr_passwd,data->gr_gid);<BR>while(data->gr_mem[i])printf(“%s ,”,data->mem[i++]);<BR>printf(“\n”);<BR>}<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>執(zhí)行 </FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2>sys:x:3:root,bin,adm<BR></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc100></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD> <DIV align=left><FONT face=宋體 size=2><BR>getgrnam(從組文件中取得指定組的數(shù)據(jù)) </FONT></DIV></TD></TR>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -