`
deepfuture
  • 浏览: 4425497 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80283
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70701
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103894
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:287166
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15109
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:68193
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32456
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46217
社区版块
存档分类
最新评论

linux-C获得用户信息和节点信息

阅读更多
#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
#

0
0
分享到:
评论

相关推荐

    jdk-8u331-linux-x64.tar.gz

    解压后会得到名为"jdk-8u331-linux-x64.tar.gz"的文件,这是另一个压缩包,采用的是tar.gz格式,它是Linux系统中常用的打包和压缩方式。tar命令主要用于将多个文件和目录打包成一个单一的文件,而gzip则对这个tar...

    kubernetes-server-linux-amd64.tar.gz

    - **下载并解压**:下载“kubernetes-server-linux-amd64.tar.gz”,解压后得到所需组件,如kube-apiserver、kube-controller-manager等。 - **配置组件**:根据集群规模和需求,配置相关组件的配置文件,如kube...

    mongodb-linux-x86_64-3.2.20.tgz

    MongoDB是一款广泛使用的开源数据库系统,它以...随着版本的不断迭代,MongoDB的功能越来越完善,性能和安全性也得到了显著提升。对于那些需要处理大规模、非结构化数据的项目来说,MongoDB无疑是一个值得考虑的选择。

    Red_Hat_Enterprise_Linux-6-Global_File_System_2-zh-CN

    **Red Hat Enterprise Linux 6 (RHEL 6)** 是一款由 Red Hat 开发的企业级操作系统,其稳定性和安全性得到了业界广泛认可。本文主要介绍 **RHEL 6 中的全局文件系统 2 (GFS2)**,这是一种高性能的集群文件系统,旨在...

    linux下用framebuffer显示BMP文件的C源代码

    BMP文件头包含有关图像尺寸、颜色信息和数据存储方式的数据。解析BMP文件时,我们需读取并理解这些头部信息,以便正确地将图像数据映射到framebuffer。 以下是一般步骤: 1. 打开framebuffer设备:使用`open()`...

    linux-flowci新一代的CI持续集成工具

    在Linux环境下,它可以快速响应代码变更,迅速执行构建和测试任务,缩短了反馈循环,从而让开发团队能更快地得到结果,更快地修复问题。此外,它支持多种语言和框架,如Java、Python、Node.js、Docker等,这使得它...

    Linux下net-snmp(包括V3)安装调试流程

    它支持SNMPv1/v2c/v3等不同版本的协议,并提供了丰富的工具来帮助用户进行网络设备的管理和监控。 #### 二、安装准备 1. **下载** - 推荐从官方网址 [http://www.net-snmp.org/download.html]...

    基于Linux-MiniGUI的嵌入式系统中键盘输入设备的实现.pdf

    总的来说,基于Linux-MiniGUI的嵌入式系统中键盘输入设备的实现涉及硬件接口设计、驱动程序开发和用户界面的事件处理。理解这些概念和流程对于开发高效、可靠的嵌入式系统至关重要。通过这种方式,开发者可以为各种...

    Linux7安装单节点Oracle 12c数据库详细配置操作

    Oracle 12c在Linux 7上的安装过程是一个细致且重要的步骤,需要确保所有硬件和软件需求得到满足,以及系统配置正确无误。 首先,安装前的准备工作至关重要。Oracle 12c对内存的要求至少为1 GB,但推荐至少2 GB。你...

    Linux开发教程-At91rm9200 Linux开发教程-At91rm9200

    - **arm-linux-ar和arm-linux-ranlib的使用**:这两个工具分别用于创建静态库和更新库的索引信息。 - **arm-linux-objdump的使用**:用于反汇编和显示目标文件的信息。 - **arm-linux-readelf的使用**:用于读取...

    嵌入式面试题整理 -(linux、c语言、c++、单片机)

    ### 嵌入式面试题知识点总结 #### Linux下的Socket套接字与Windows下的WinSock共同...以上知识点覆盖了嵌入式领域中关于Linux、C/C++语言、单片机等方面的基本概念和技术要点,有助于求职者更好地准备相关的技术面试。

    Linux下C语言编写贪吃蛇.zip

    这个项目不仅可以帮助你深入理解C语言的基础知识,还能让你熟悉Linux操作系统和命令行界面。以下是关于这个主题的一些关键知识点: 1. **C语言基础**:首先,你需要掌握C语言的基本语法,包括变量声明、数据类型、...

    airport-master()_linux_dijkstrac_源码

    1. **数据结构设计**:首先,需要定义数据结构来存储机场信息和航班数据,如节点(机场)和边(航班)。这可能包括节点的ID、位置信息以及与其它节点的连接关系(边的权重)。 2. **初始化**:设置起点为已知最短...

    蜗窝科技Linux统一设备模型讲解

    - 提供了一系列API,如`platform_get_irq`和`platform_get_resource`等,用于获取平台设备的信息和资源。 - **Platform模块的内部动作解析** - Platform设备模型通过`platform_driver`的`probe`函数来初始化设备,...

    基于linux C下数据结构的手机通讯录.

    在Linux环境下,使用C语言开发一个手机通讯录系统是一个经典的编程练习,它涉及到核心的数据结构和用户交互。这个项目的核心是实现链表数据结构,因为链表非常适合存储和操作动态变化的数据,比如联系人的信息。下面...

    Linux watchdog.zip

    3. **用户空间接口**:Linux内核提供了 `/dev/watchdog` 设备节点,允许用户空间的应用程序通过I/O操作与Watchdog进行交互,设置超时时间,发送心跳等。 4. **内核模块**:在Linux中,Watchdog驱动通常作为可加载...

    基于S3C2410的LINUX移植

    根文件系统包含运行Linux所需的用户空间程序和服务,如shell、基本命令、系统库等。常见的根文件系统有 BusyBox、Yocto Project等。选择合适的构建工具,如Buildroot或OpenEmbedded,根据需求配置并生成对应的文件...

    Linux面试题与答案

    ### Linux面试题与答案知识点详解 #### 1. Linux系统中的文件类型与设备 - **普通文件**:最常见的文件类型,包含数据。 - **目录文件**:存储其他文件或目录的容器。 - **链接文件**:指向另一个文件的指针。 - **...

Global site tag (gtag.js) - Google Analytics