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

📄 07.html

📁 linux下一些常用的C函数的说明和例子
💻 HTML
📖 第 1 页 / 共 5 页
字号:
    <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;stdio.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 * 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&lt;pwd.h&gt;<br>
        #include&lt;sys/types.h&gt;<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-&gt;pw_name,user-&gt;pw_uid,user-&gt;pw_gid,user-&gt;pw_gecos,user-&gt;pw_dir,user-&gt;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&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>

⌨️ 快捷键说明

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