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

📄 07.html

📁 linux下一些常用的C函数的说明和例子
💻 HTML
📖 第 1 页 / 共 5 页
字号:
  </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"> 
      <div align="right"><font face='宋体' size='2'> 范例 </font> </div>
    </td>
    <td> 
      <div align="left"><font face='宋体' size='2'> /*取得root账号的识别码和根目录*/<br>
        #include&lt;pwd.h&gt;<br>
        #include&lt;sys/types.h&gt;<br>
        main()<br>
        {<br>
        struct passwd *user;<br>
        user = getpwnam(“root”);<br>
        printf(“name:%s\n”,user-&gt;pw_name);<br>
        printf(“uid:%d\n”,user-&gt;pw_uid);<br>
        printf(“home:%s\n”,user-&gt;pw_dir);<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'> name:root<br>
        uid:0<br>
        home:/root<br>
        </font> </div>
    </td>
  </tr>
  <tr> 
    <td valign="top" width="80">  
      <div align="right"><br>
        <font face='宋体' size='2'><a name=linuxc105></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>
        getpwuid(从密码文件中取得指定uid 的数据) </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,getpwnam<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 * getpwuid(uid_t 
        uid);<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'> getpwuid()用来逐一搜索参数uid 指定的用户识别码,找到时便将该用户的数据以结构返回结构请参考将该用户的数据以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>
        user= getpwuid(6);<br>
        printf(“name:%s\n”,user-&gt;pw_name);<br>
        printf(“uid:%d\n”,user-&gt;pw_uid);<br>
        printf(“home:%s\n”,user-&gt;pw_dir);<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'> name:shutdown<br>
        uid:6<br>
        home:/sbin<br>
        </font> </div>
    </td>
  </tr>
  <tr> 
    <td valign="top" width="80">  

⌨️ 快捷键说明

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