#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
#
分享到:
相关推荐
解压后会得到名为"jdk-8u331-linux-x64.tar.gz"的文件,这是另一个压缩包,采用的是tar.gz格式,它是Linux系统中常用的打包和压缩方式。tar命令主要用于将多个文件和目录打包成一个单一的文件,而gzip则对这个tar...
- **下载并解压**:下载“kubernetes-server-linux-amd64.tar.gz”,解压后得到所需组件,如kube-apiserver、kube-controller-manager等。 - **配置组件**:根据集群规模和需求,配置相关组件的配置文件,如kube...
MongoDB是一款广泛使用的开源数据库系统,它以...随着版本的不断迭代,MongoDB的功能越来越完善,性能和安全性也得到了显著提升。对于那些需要处理大规模、非结构化数据的项目来说,MongoDB无疑是一个值得考虑的选择。
**Red Hat Enterprise Linux 6 (RHEL 6)** 是一款由 Red Hat 开发的企业级操作系统,其稳定性和安全性得到了业界广泛认可。本文主要介绍 **RHEL 6 中的全局文件系统 2 (GFS2)**,这是一种高性能的集群文件系统,旨在...
BMP文件头包含有关图像尺寸、颜色信息和数据存储方式的数据。解析BMP文件时,我们需读取并理解这些头部信息,以便正确地将图像数据映射到framebuffer。 以下是一般步骤: 1. 打开framebuffer设备:使用`open()`...
在Linux环境下,它可以快速响应代码变更,迅速执行构建和测试任务,缩短了反馈循环,从而让开发团队能更快地得到结果,更快地修复问题。此外,它支持多种语言和框架,如Java、Python、Node.js、Docker等,这使得它...
它支持SNMPv1/v2c/v3等不同版本的协议,并提供了丰富的工具来帮助用户进行网络设备的管理和监控。 #### 二、安装准备 1. **下载** - 推荐从官方网址 [http://www.net-snmp.org/download.html]...
总的来说,基于Linux-MiniGUI的嵌入式系统中键盘输入设备的实现涉及硬件接口设计、驱动程序开发和用户界面的事件处理。理解这些概念和流程对于开发高效、可靠的嵌入式系统至关重要。通过这种方式,开发者可以为各种...
Oracle 12c在Linux 7上的安装过程是一个细致且重要的步骤,需要确保所有硬件和软件需求得到满足,以及系统配置正确无误。 首先,安装前的准备工作至关重要。Oracle 12c对内存的要求至少为1 GB,但推荐至少2 GB。你...
- **arm-linux-ar和arm-linux-ranlib的使用**:这两个工具分别用于创建静态库和更新库的索引信息。 - **arm-linux-objdump的使用**:用于反汇编和显示目标文件的信息。 - **arm-linux-readelf的使用**:用于读取...
### 嵌入式面试题知识点总结 #### Linux下的Socket套接字与Windows下的WinSock共同...以上知识点覆盖了嵌入式领域中关于Linux、C/C++语言、单片机等方面的基本概念和技术要点,有助于求职者更好地准备相关的技术面试。
这个项目不仅可以帮助你深入理解C语言的基础知识,还能让你熟悉Linux操作系统和命令行界面。以下是关于这个主题的一些关键知识点: 1. **C语言基础**:首先,你需要掌握C语言的基本语法,包括变量声明、数据类型、...
1. **数据结构设计**:首先,需要定义数据结构来存储机场信息和航班数据,如节点(机场)和边(航班)。这可能包括节点的ID、位置信息以及与其它节点的连接关系(边的权重)。 2. **初始化**:设置起点为已知最短...
- 提供了一系列API,如`platform_get_irq`和`platform_get_resource`等,用于获取平台设备的信息和资源。 - **Platform模块的内部动作解析** - Platform设备模型通过`platform_driver`的`probe`函数来初始化设备,...
在Linux环境下,使用C语言开发一个手机通讯录系统是一个经典的编程练习,它涉及到核心的数据结构和用户交互。这个项目的核心是实现链表数据结构,因为链表非常适合存储和操作动态变化的数据,比如联系人的信息。下面...
3. **用户空间接口**:Linux内核提供了 `/dev/watchdog` 设备节点,允许用户空间的应用程序通过I/O操作与Watchdog进行交互,设置超时时间,发送心跳等。 4. **内核模块**:在Linux中,Watchdog驱动通常作为可加载...
根文件系统包含运行Linux所需的用户空间程序和服务,如shell、基本命令、系统库等。常见的根文件系统有 BusyBox、Yocto Project等。选择合适的构建工具,如Buildroot或OpenEmbedded,根据需求配置并生成对应的文件...
### Linux面试题与答案知识点详解 #### 1. Linux系统中的文件类型与设备 - **普通文件**:最常见的文件类型,包含数据。 - **目录文件**:存储其他文件或目录的容器。 - **链接文件**:指向另一个文件的指针。 - **...