#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
#