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

📄 linux 常用c函数(中文版)-用户组.htm

📁 常用的嵌入式linux开发的C函数库
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      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>  
      <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(&amp;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>  

⌨️ 快捷键说明

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