#include <unistd.h> #include <sys/utsname.h> #include <sys/types.h> #include <pwd.h> int main(void){// char hname[256];//节点名称 struct utsname uts;//节点结构信 uid_t uid; gid_t gid; struct passwd *pw; if (gethostname(hname,255)!=0||uname(&uts)<0){ printf("不能得到主机信息"); exit(1); } printf("主机名:%s\n",hname); printf("系统名称:%s\n 机器名称:%s\n",uts.sysname,uts.machine); printf("节点名称:%s\n",uts.nodename); printf("版本:%s,版本号%s",uts.release,uts.version);//系统版本,版本号 //取得当前用户登陆情况 uid=getuid(); gid=getgid(); pw=getpwuid(uid); printf("用户id 为%d,用户组为%d\n",uid,gid); printf("用户真实姓名%s\n用户名称:%s\n",pw->pw_gecos,pw->pw_name); printf("用户uid:%s\ngid:%s\n",pw->pw_uid,pw->pw_gid); printf("主目录:%s\n",pw->pw_dir); printf("用户shell:%s\n",pw->pw_shell); }
?运行:
# gcc -o test7 test7.c
test7.c: In function ‘main’:
test7.c:13: warning: incompatible implicit declaration of built-in function ‘printf’
test7.c:14: warning: incompatible implicit declaration of built-in function ‘exit’
test7.c:17: warning: incompatible implicit declaration of built-in function ‘printf’
# ./test7
主机名:puppypc
系统名称:Linux
?机器名称:i686
节点名称:puppypc
版本:2.6.30.5,版本号#1 SMP Tue Sep 1 15:48:26 GMT-8 2009用户id 为0,用户组为0
用户真实姓名root
用户名称:root
用户uid:(null)
gid:(null)
主目录:/root
用户shell:/bin/sh
用户密码:x
#