Linux下的C程序:获取用户信息和主机信息

Linux下获取用户信息和主机信息程序

程序代码:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <sys/utsname.h>

void main()
{
    printf("当前用户 %s\n", getlogin());
    printf("uid=%d, gid=%d\n", getuid(), getgid());

    struct passwd *pw;

    //当前用户信息
    pw = getpwuid(getuid());
    printf("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);

    //tsybius用户信息
    pw = getpwnam("tsybius");
    printf("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);
    
    //root用户信息
    pw = getpwnam("root");
    printf("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);    

    printf("==============\n");

    //获取主机信息
    char computer[256];
    struct utsname uts;

    if (gethostname(computer, 255) != 0 || uname(&uts) < 0)
    {
        fprintf(stderr, "无法获取主机信息\n");
        exit(EXIT_FAILURE);
    }

    printf("HOST NAME:[%s]\n", computer);
    printf("操作系统: [%s]\n", uts.sysname);
    printf("硬件类型: [%s]\n", uts.machine);
    printf("主机名:   [%s]\n", uts.nodename);
    printf("VERSION:  [%s]\n", uts.version);
    printf("RELEASE:  [%s]\n", uts.release);

    exit(EXIT_SUCCESS);
}

运行结果:

END

时间: 2024-10-06 06:41:40

Linux下的C程序:获取用户信息和主机信息的相关文章

微信小程序-获取用户信息和openid,session_key,

1:微信小程序获取用户信息:比如常用的 avatarUrl (用户头像),nickName (用户名称) 等等, (1):获取用户信息调用 wx.getUserInfo 代码如下: 直接请求接口就可以了,随后把数据存放到storage中,下次直接取 就不用再请求接口,, 2:获取 openid (1):请求wx.login 接口,代码如下: url:是微信提供的 appid:是小程序的appid secret:是小程序开发设置的 AppSecret 只要获取到这两项,用户信息可以用于页面,ope

两种在linux下创建应用程序快捷方式的方法

两种在linux下创建应用程序快捷方式的方法: A. 在桌面上创建快捷方式 B. 在应用程序菜单中添加快捷方式 在桌面上创建快捷方式 这是最简单的一种方法,在桌面上单击鼠标右键,会有一个“创建启动器”栏.这里我以为mplayer创建快捷方式为例说明: 名称-mplayer(或者你喜欢的任何名称,这个名称会出现在快捷图标的 下方) 命令-/usr/bin/gmplayer(这个是mplayer的gui应用程序的执行文件,跟 安装路径相关,可以通过which gmplayer找到) 图标-一般应用程

Linux下C/C++程序调试基础(GCC,G++,GDB,CGDB,DDD)

在写程序的时候,经常会遇到一些问题,比如某些变量计算结果不是我们预期的那样,这时我们需要对程序进行调试.本文主要介绍调试C/C++在Linux操作系统下主要的调试工具. 在Linux下写程序,C/C++主要的编译器有GCC/G++,ICC等,像我等穷码农,最喜欢GCC了,很大原因是他免费!所以,我们以GCC/G++为例介绍主要的调试工具. 分以下几个内容介绍: 1.调试之前的工作 2.选择调试工具 3.调试步骤 点我,请帮我投一票! 调试之前的工作 编译器在编译阶段需要产生可供调试的代码,才能被

Servlet程序获取http协议提交的信息

Servlet程序获取http协议提交的信息 Servlet程序获取http协议提交的信息 实现过程以及存在的问题 编码问题 实现过程以及存在的问题 下面是其Java Servlet代码: package com.jpzhutech.servlet; import java.io.IOException; import java.io.InputStream; import java.nio.Buffer; import java.util.Enumeration; import javax.s

Linux下查看操作系统信息、内存情况及cpu信息:cpu个数、核心数、线程数

文章转载:http://blog.snsgou.com/post-793.html 1.查看物理CPU的个数 [[email protected] ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l1 2.查看逻辑CPU的个数 [[email protected] ~]# cat /proc/cpuinfo |grep "processor"|wc -l4 3.查看CPU是几核(即,核心数) [[em

设置Cookie,登录记住用户登录信息,获取用户登录过得信息

1 function setCookie(name,value) 2 { 3 var Days = 30; 4 var exp = new Date(); 5 exp.setTime(exp.getTime() + Days*24*60*60*1000); 6 document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();+ "; path=" + &

Linux下执行Java程序

在linux下编译java程序,执行javac编译生成class文件时,在centos7终端输入如,javac hello.java    会提示未找到指令,但用java -verison测试环境变量是没问题的 百度了好久,说的很复杂,重新再linux配置环境变量,输入 vi /etc/profile进入,添加以下代码: export JAVA_HOME=/usr/local/jdk1.8.0_144 export PATH=$JAVA_HOME/bin:$PATH export CLASSPA

如何使用加多宝(jdb)在linux下调试Java程序

毕业时写了一段时间的C,那时候调试使用gdb,后来转了java,当时就想java程序怎么调试,找了一下,果然,那就是jdk自带的jdb windows里是这样的 Linux下是这样的 一般我在linux下来调试Java程序 好,那么,问题来了,这玩意怎么用?有好几种玩法 第一种玩法:以经典的HelloWorld为例,先写一个Java程序,如下: 我们把编译好的类上传到linux下,如下所示 务必强调一下:类所在的包名的层次结构也要在linux下体现出来 下面我们来玩起来,在linux下操作如下

Linux下的XAMPP基本配置技巧(设置虚拟主机、添加FTP账户等)

Linux下的XAMPP基本配置技巧(设置虚拟主机.添加FTP账户等) xampp安装好之后就只有一个默认站点及一个默认nobody的ftp账户,这显然不符合我们平时的需求了,那么下面就来讲一下如何设置并管理多个虚拟主机及ftp账户了,至于xampp的安装不在此讨论范围,读者可自行参阅官网的相关说明. 1.首先讲一下ftp账户的配置: xampp采用的是proftpd服务端,这个不像我们Win环境下常用的Serv-U,用户帐户不是在服务端工具里面进行配置,而是在linux系统帐户里面配置的.因此