⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 07.htm

📁 Linux系统函数用法的详细介绍
💻 HTM
📖 第 1 页 / 共 5 页
字号:
  <TR>    <TD vAlign=top width=80>      <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD>    <TD>      <DIV align=left><FONT face=宋体       size=2>fgetgrent,getrent,getgruid<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&lt;grp.h&gt;<BR>#include&lt;sys/types.h&gt;<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>strcut group * getgrnam(const char *       name);<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>getgrnam()用来逐一搜索参数那么指定的组名称,找到时便将该组的数据以group结构返回。group       结构请参考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结构数据,如果返回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>/*       取得adm的组数据*/<BR>#include&lt;grp.h&gt;<BR>#include&lt;sys/types.h&gt;<BR>main()<BR>{<BR>strcut       group * data;<BR>int i=0;<BR>data =       getgrnam(“adm”);<BR>printf(“%s:%s:%d:”,data-&gt;gr_name,data-&gt;gr_passwd,data-&gt;gr_gid);<BR>while(data-&gt;gr_mem[i])printf(“%s,”,data-&gt;gr_mem[i++]);<BR>printf(“\n”);<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>adm:x:4:root,adm,daemon<BR></FONT></DIV></TD></TR>  <TR>    <TD vAlign=top width=80>        <DIV align=right><BR><FONT face=宋体 size=2><A       name=linuxc101></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>getgroups(取得组代码)   </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>initgroups,setgroup,getgid,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&lt;unistd.h&gt;<BR>#include&lt;sys/types.h&gt;<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>int getgroups(int size,gid_t       list[]);<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>getgroup()用来取得目前用户所属的组代码。参数size为list〔〕所能容纳的gid_t 数目。如果参数size       值为零,此函数仅会返回用户所属的组数。<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>返回组识别码,如有错误则返回-1。<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>EFAULT 参数list数组地址不合法。EINVAL       参数size值不足以容纳所有的组。<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&lt;unistd.h&gt;<BR>#include&lt;sys/types.h&gt;<BR>main()<BR>{<BR>gid_t       list[500];<BR>int x,i;<BR>x =       getgroups(0.list);<BR>getgroups(x,list);<BR>for(i=0;i&lt;x;i++)<BR>printf(“%d:%d\n”,i,list[i]);<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>0:00<BR>1:01<BR>2:02<BR>3:03<BR>4:04<BR>5:06<BR>6:10<BR></FONT></DIV></TD></TR>  <TR>    <TD vAlign=top width=80>        <DIV align=right><BR><FONT face=宋体 size=2><A       name=linuxc102></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>getpw(取得指定用户的密码文件数据)     </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>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>#include&lt;pwd.h&gt;<BR>#include&lt;sys/types.h&gt;<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>int getpw(uid_t uid,char       *buf);<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>getpw()会从/etc/passwd中查找符合参数uid所指定的用户账号数据,找不到相关数据就返回-1。所返回的buf字符串格式如下:账号:密码:用户识别码(uid):组识别码(gid):全名:根目录:shell<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>返回0表示成功,有错误发生时返回-1。<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>1.       getpw()会有潜在的安全性问题,请尽量使用别的函数取代。<BR>2.       使用shadow的系统已把用户密码抽出/etc/passwd,因此使用getpw()取得的密码将为“x”。<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&lt;pwd.h&gt;<BR>#include&lt;sys/types.h&gt;<BR>main()<BR>{<BR>char       buffer[80];<BR>getpw(0,buffer);<BR>printf(“%s\n”,buffer);<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:x:0:0:root:/root:/bin/bash<BR></FONT></DIV></TD></TR>  <TR>    <TD vAlign=top width=80>        <DIV align=right><BR><FONT face=宋体 size=2><A       name=linuxc103></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>getpwent(从密码文件中取得账号的数据)       </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>getpw,fgetpwent,getpwnam,getpwuid,setpwent,endpwent<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&lt;pwd.h&gt;<BR>#include&lt;sys/types.h&gt;<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>strcut passwd *       getpwent(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>getpwent()用来从密码文件(/etc/passwd)中读取一项用户数据,该用户的数据以passwd       结构返回。第一次调用时会取得第一位用户数据,之后每调用一次就会返回下一项数据,直到已无任何数据时返回NULL。<BR>passwd       结构定义如下<BR>struct passwd{<BR>char * pw_name; /*用户账号*/<BR>char * pw_passwd;       /*用户密码*/<BR>uid_t pw_uid; /*用户识别码*/<BR>gid_t pw_gid; /*组识别码*/<BR>char *       pw_gecos; /*用户全名*/<BR>char * pw_dir; /*家目录*/<BR>char * pw_shell; /*       所使用的shell路径*/<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>返回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>getpwent()在第一次调用时会打开密码文件,读取数据完毕后可使用endpwent()来关闭该密码文件。错误代码ENOMEM       内存不足,无法配置passwd结构。<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&lt;pwd.h&gt;<BR>#include&lt;sys/types.h&gt;<BR>main()<BR>{<BR>struct       passwd *user;<BR>while((user =       getpwent())!=0){<BR>printf(“%s:%d:%d:%s:%s:%s\n”,user-&gt;pw_name,user-&gt;pw_uid,user-&gt;pw_gid,<BR>user-&gt;pw_gecos,user-&gt;pw_dir,user-&gt;pw_shell);<BR>}<BR>endpwent();<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=linuxc104></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>getpwnam(从密码文件中取得指定账号的数据)       </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>getpw,fgetpwent,getpwent,getpwuid<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&lt;pwd.h&gt;<BR>#include&lt;sys/types.h&gt;<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 * getpwnam(const char *       name);<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>getpwnam()用来逐一搜索参数name       指定的账号名称,找到时便将该用户的数据以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>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -