获取主机和用户信息

#include  <sys/types.h>
#include  <sys/utsname.h>
#include <pwd.h>
#include <stdio.h>
#include  <unistd.h>
#include <stdlib.h>
int main(int argc,char * argv[])
{
     char computer[256];
     struct utsname uts;
     if(gethostname(computer,255)!=0||uname(&uts)<0)
     {
         fprintf(stderr,"could not get host information\n");
         exit(1);
     }
     printf("computer name is %s\n",computer);
     printf("system  is %s on %s handware\n",uts.sysname,uts.machine);
     printf("nodename is %s\n",uts.nodename);
     printf("version is %s,%s\n",uts.release,uts.version);
     printf("domainname is %s\n",uts.domainname);
////////////////////////////////////////////////////////////////////////
     uid_t uid;
     gid_t gid;
     struct passwd *pw;
     uid=getuid();
     gid=getgid();
     printf("user is %s\n",getlogin());
     printf("user IDs:uid= %d, gid=%d\n",uid,gid);
     pw=getpwuid(uid);
     printf("UID passwd entry:\n name=%s, uid=%d,  gid=%d, home=%s, shell=%s\n",
            pw->pw_name,pw->pw_uid,pw->pw_gid,pw->pw_dir,pw->pw_shell);
     pw=getpwnam("root");
     printf("UID passwd entry:\n name=%s, uid=%d,  gid=%d, home=%s, shell=%s\n",
            pw->pw_name,pw->pw_uid,pw->pw_gid,pw->pw_dir,pw->pw_shell);
      exit(0);
}


posted @ 2015-09-22 23:32  陈泉宏  阅读(296)  评论(0编辑  收藏  举报