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

📄 07.htm

📁 Linux 常用C函数(中文版) html 格式
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      <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&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>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&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>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&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>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&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>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>
    <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>getgrent()在第一次调用时会打开组文件,读取数据完毕后可使用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>ENOMEM 
      内存不足,无法配置group结构。<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>main()<BR>{<BR>struct 
      group *data;<BR>int i;<BR>while((data= 
      getgrent())!=0){<BR>i=0;<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>endgrent();<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: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 的数据) 
      </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>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&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 * getgrgid(gid_t 
      gid);<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>getgrgid()用来依参数gid指定的组识别码逐一搜索组文件,找到时便将该组的数据以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>/* 
      取得gid=3的组数据*/<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 = 
      getgrgid(3);<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;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>sys:x:3:root,bin,adm<BR></FONT></DIV></TD></TR>

⌨️ 快捷键说明

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