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

📄 07.html

📁 linux下一些常用的C函数的说明和例子
💻 HTML
📖 第 1 页 / 共 5 页
字号:
      <div align="right"><br>
        <font face='宋体' size='2'><a name=linuxc106></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>
        getuid(取得真实的用户识别码) </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,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 getuid(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'> getuid()用来取得执行目前进程的用户识别码。<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(“uid is %d\n”,getuid());<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'> uid is 0 /*当使用root身份执行范例程序时*/<br>
        </font> </div>
    </td>
  </tr>
  <tr> 
    <td valign="top" width="80">  
      <div align="right"><br>
        <font face='宋体' size='2'><a name=linuxc107></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>
        getutent(从utmp 文件中取得账号登录数据) </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'> getutent,getutid,getutline,setutent,endutent,pututline,utmpname<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;utmp.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 utmp *getutent(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'> getutent()用来从utmp 文件(/var/run/utmp)中读取一项登录数据,该数据以utmp 
        结构返回。第一次调用时会取得第一位用户数据,之后每调用一次就会返回下一项数据,直到已无任何数据时返回NULL。<br>
        utmp结构定义如下<br>
        struct utmp<br>
        {<br>
        short int ut_type; /*登录类型*/<br>
        pid_t ut_pid; /*login进程的pid*/<br>
        char ut_line[UT_LINESIZE];/*登录装置名,省略了“/dev/”*/<br>
        char ut_id[4]; /* Inittab ID*/<br>
        char ut_user[UT_NAMESIZE];/*登录账号*/<br>
        char ut_host[UT_HOSTSIZE];/*登录账号的远程主机名称*/<br>
        struxt exit_status ut_exit;/* 当类型为DEAD_PROCESS时进程的结<br>
        束状态*/<br>
        long int ut_session; /*Sessioc ID*/<br>
        struct timeval ut_tv; /*时间记录*/<br>
        int32_t ut_addr_v6[4]; /*远程主机的网络地址*/<br>
        char __unused[20]; /* 保留未使用*/<br>
        };<br>
        ut_type有以下几种类型:<br>
        EMPTY 此为空的记录。<br>
        RUN_LVL 记录系统run-level的改变<br>
        BOOT_TIME 记录系统开机时间<br>
        NEW_TIME 记录系统时间改变后的时间<br>
        OLD_TINE 记录当改变系统时间时的时间。<br>
        INIT_PROCESS 记录一个由init衍生出来的进程。<br>
        LOGIN_PROCESS 记录login进程。<br>
        USER_PROCESS 记录一般进程。<br>
        DEAD_PROCESS 记录一结束的进程。<br>
        ACCOUNTING 目前尚未使用。<br>
        exit_status结构定义<br>
        struct exit_status<br>
        {<br>
        short int e_termination; /*进程结束状态*/<br>
        short int e_exit; /*进程退出状态*/<br>
        };<br>
        timeval的结构定义请参考gettimeofday()。<br>
        相关常数定义如下:<br>
        UT_LINESIZE 32<br>
        UT_NAMESIZE 32<br>
        UT_HOSTSIZE 256<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'> 返回utmp 结构数据,如果返回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'> getutent()在第一次调用时会打开utmp 文件,读取数据完毕后可使用endutent()来关闭该utmp文件。<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;utmp.h&gt;<br>
        main()<br>
        {<br>
        struct utmp *u;<br>
        while((u=getutent())){<br>
        if(u-&gt;ut_type = = USER_PROCESS)<br>
        printf(“%d %s %s %s \n”,u-&gt;ut_type,u-&gt;ut_user,u-&gt;ut_line,u-&gt;ut_host);<br>
        }<br>
        endutent();<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账号分别登录/dev/pts/0,/dev/pts/1,/dev/pts/2 
        */<br>
        7 root pts/0<br>
        7 root pts/1<br>
        7 root pts/2<br>
        </font> </div>
    </td>
  </tr>
  <tr> 
    <td valign="top" width="80">  
      <div align="right"><br>
        <font face='宋体' size='2'><a name=linuxc108></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>
        getutid(从utmp 文件中查找特定的记录) </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'> getutent,getutline<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;utmp.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 utmp *getutid(strcut 
        utmp *ut);<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'> getutid()用来从目前utmp 文件的读写位置逐一往后搜索参数ut指定的记录,如果ut-&gt;ut_type 
        为RUN_LVL,BOOT_TIME,NEW_TIME,OLD_TIME 其中之一则查找与ut-&gt;ut_type 相符的记录;若ut-&gt;ut_type 
        为INIT_PROCESS,LOGIN_PROCESS,USER_PROCESS或DEAD_PROCESS其中之一,则查找与ut-&gt;ut_id相符的记录。找到相符的记录便将该数据以utmp 
        结构返回。utmp结构请参考getutent()。<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'> 返回utmp 结构数据,如果返回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;utmp.h&gt;<br>
        main()<br>
        {<br>
        struct utmp ut,*u;<br>
        ut.ut_type=RUN_LVL;<br>
        while((u= getutid(&ut))){<br>
        printf(“%d %s %s %s\n”,u-&gt;ut_type,u-&gt;ut_user,u-&gt;ut_line,u-&gt;ut_host);<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'> 1 runlevel -<br>
        </font> </div>
    </td>
  </tr>
  <tr> 
    <td valign="top" width="80">  
      <div align="right"><br>
        <font face='宋体' size='2'><a name=linuxc109></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>
        getutline(从utmp 文件中查找特定的记录) </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'> getutent,getutid,pututline<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;utmp.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 utmp * getutline (struct 
        utmp *ut);<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'> getutline()用来从目前utmp文件的读写位置逐一往后搜索ut_type为USER_PROCESS 
        或LOGIN_PROCESS 的记录,而且ut_line 和ut-&gt;ut_line 相符。找到相符的记录便将该数据以utmp 结构返回,utmp结构请参考getutent()。<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'> 返回utmp 结构数据,如果返回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;utmp.h&gt;<br>
        main()<br>
        {<br>
        struct utmp ut,*u;<br>
        strcpy (ut.ut_line,”pts/1”);<br>
        while ((u=getutline(&ut))){<br>
        printf(“%d %s %s %s \n”,u-&gt;ut_type,u-&gt;ut_user,u-&gt;ut_line,u-&gt;ut_host);<

⌨️ 快捷键说明

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