📄 07.html
字号:
<td valign="top" width="80">
<div align="right"><font face='宋体' size='2'> 表头文件 </font> </div>
</td>
<td>
<div align="left"><font face='宋体' size='2'> #include<pwd.h><br>
#include<stdio.h><br>
#include<sys/types.h><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'> struct passwd * fgetpwent(FILE
*stream);<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'> fgetpwent()会从参数stream指定的文件读取一行数据,然后以passwd结构将该数据返回。参数stream所指定的文件必须和/etc/passwd相同的格式。passwd结构定义请参考getpwent()。<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'> 返回passwd结构数据,如果返回NULL则表示已无数据,或有错误发生。<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<pwd.h><br>
#include<sys/types.h><br>
main()<br>
{<br>
struct passwd *user;<br>
FILE *stream;<br>
stream = fopen("/etc/passwd", "r");<br>
while((user = fgetpwent(stream))!=0){<br>
printf("%s:%d:%d:%s:%s:%s\n",user->pw_name,user->pw_uid,user->pw_gid,user->pw_gecos,user->pw_dir,user->pw_shell);<br>
}<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'> root:0:0:root:/root:/bin/bash<br>
bin:1:1:bin:/bin:<br>
daemon:2:2:daemon:/sbin:<br>
adm:3:4:adm:/var/adm:<br>
lp:4:7:lp:/var/spool/lpd:<br>
sync:5:0:sync:/sbin:/bin/sync<br>
shutdown:6:0:shutdown:/sbin:/sbin/shutdown<br>
halt:7:0:halt:/sbin:/sbin/halt<br>
mail:8:12:mail:/var/spool/mail:<br>
news:9:13:news:var/spool/news<br>
uucp:10:14:uucp:/var/spool/uucp:<br>
operator:11:0:operator :/root:<br>
games:12:100:games:/usr/games:<br>
gopher:13:30:gopher:/usr/lib/gopher-data:<br>
ftp:14:50:FTP User:/home/ftp:<br>
nobody:99:99:Nobody:/:<br>
xfs:100:101:X Font Server: /etc/Xll/fs:/bin/false<br>
gdm:42:42:/home/gdm:/bin/bash<br>
kids:500:500: : /home/kids:/bin/bash<br>
</font> </div>
</td>
</tr>
<tr>
<td valign="top" width="80">
<div align="right"><br>
<font face='宋体' size='2'><a name=linuxc95></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>
getegid(取得有效的组识别码) </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'> 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'> 定义函数 </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'> 函数说明 </font> </div>
</td>
<td>
<div align="left"><font face='宋体' size='2'> getegid()用来取得执行目前进程有效组识别码。有效的组识别码用来决定进程执行时组的权限。返回值返回有效的组识别码。<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'> 执行 </font> </div>
</td>
<td>
<div align="left"><font face='宋体' size='2'> egid is 0 /*当使用root身份执行范例程序时*/<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'> 相关函数 </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'> 定义函数 </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'> 函数说明 </font> </div>
</td>
<td>
<div align="left"><font face='宋体' size='2'> geteuid()用来取得执行目前进程有效的用户识别码。有效的用户识别码用来决定进程执行的权限,借由此改变此值,进程可以获得额外的权限。倘若执行文件的setID位已被设置,该文件执行时,其进程的euid值便会设成该文件所有者的uid。例如,执行文件/usr/bin/passwd的权限为-r-s--x--x,其s
位即为setID(SUID)位,而当任何用户在执行passwd 时其有效的用户识别码会被设成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'> 执行 </font> </div>
</td>
<td>
<div align="left"><font face='宋体' size='2'> euid is 0 /*当使用root身份执行范例程序时*/<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(取得真实的组识别码) </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'> getegid,setregid,setgid<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'> 定义函数 </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'> 函数说明 </font> </div>
</td>
<td>
<div align="left"><font face='宋体' size='2'> getgid()用来取得执行目前进程的组识别码。<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'> 执行 </font> </div>
</td>
<td>
<div align="left"><font face='宋体' size='2'> gid is 0 /*当使用root身份执行范例程序时*/<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(从组文件中取得账号的数据) </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'> 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'> 定义函数 </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'> 函数说明 </font> </div>
</td>
<td>
<div align="left"><font face='宋体' size='2'> getgrent()用来从组文件(/etc/group)中读取一项组数据,该数据以group
结构返回。第一次调用时会取得第一项组数据,之后每调用一次就会返回下一项数据,直到已无任何数据时返回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>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -