linux c 获取用户信息以及主机信息

/*
gino
2015/7/10 21:52:38
*/

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <sys/utsname.h>
int main(){
    /*
    getlogin函数返回与当前用户关联的登录名。
    getuid函数返回程序关联的UID,它通常是启动程序的用户的UID。
    */
    printf("Login user is %s\n",getlogin());
    printf("uid=%d, gid=%d\n",getuid(),getgid());

    /*
    系统文件/etc/passwd包含一个用户帐号数据库。它由行组成,每行对应一个用户,包括:
    用户名、加密口令、用户标识符(UID)、组标识符(GID)、全名、主目录和默认shell。
    编程接口的数据结构:
    strcut passwd {
        char *pw_name;
        char *pw_passwd;
        uid_t pw_uid;
        gid_t pw_gid;
        char *pw_gecos;
        char *pw_dir;
        char *pw_shell;
    }

    */
    struct passwd *pw;
    /*获取当前用户信息,返回一个指向passwd结构的指针。出错返回NULL,并设置errno*/
    pw = getpwuid(getuid());
    printf("name=%s, pass=%s, uid=%d, gid=%d, gecos=%s, dir=%s, shell=%s\n",                    pw->pw_name, pw->pw_passwd, pw->pw_uid, pw->pw_gid, pw->pw_gecos, pw->pw_dir, pw->pw_shell);

    /*获取指定用户信息,返回一个指向passwd结构的指针。出错返回NULL,并设置errno*/
    pw = getpwnam("gino");
    printf("name=%s, pass=%s, uid=%d, gid=%d, gecos=%s, dir=%s, shell=%s\n",                    pw->pw_name, pw->pw_passwd, pw->pw_uid, pw->pw_gid, pw->pw_gecos, pw->pw_dir, pw->pw_shell);

    char computer[256];
    /*
    获取本地主机的标准主机名
    int gethostname(char *name, size_t len);
    name : 一个指向存放主机名的缓冲区指针
    len : 缓冲区的长度
    成功返回0,失败返回-1.
    */
    gethostname(computer,256);
    printf("hostname=%s\n",computer);

    /*
    struct utsname {
    char sysname[];    //当前操作系统名
    char nodename[];   //网络上的名称
    char release[];    //当前发布级别
    char version[];    //当前发布版本
    char machine[];    //当前硬件体系类型
    #ifdef _GNU_SOURCE
    char domainname[];  //当前域名
    #endif
    };
    */
    struct utsname uts;

    /*
    获取当前内核名称和其他信息
    int uname(struct utsname *buf);
    成功返回0,失败返回-1.
    */
    uname(&uts);
    printf("sysname=%s\n",uts.sysname);
    printf("nodename=%s\n",uts.nodename);
    printf("release=%s\n",uts.release);
    printf("version=%s\n",uts.version);
    printf("machine=%s\n",uts.machine);

    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-06 07:57:12

linux c 获取用户信息以及主机信息的相关文章

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());     prin

设置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下打印用户态段错误信息的一种方法

引自:韦东山嵌入式视频第二期 “第31课第3节_应用调试之配置修改内核打印用户态段错误信息_P” 第6分钟起. 1.配置内核支持DEBUG_USER  (勾选 Kernel hacking -> Verbose user fault messages[*] 即可)(视频第8:23) 2.设置bootargs,添加参数 user_debug = 0xFF 即可. user_debug的每一位代表设置不同的模式,具体模式可参考文件:include/asm-arm/System.h下的UDBG_XXX

asp.net获取客户端浏览器及主机信息

在线预览效果:http://tool.hovertree.com/info/client/ 其中aspx页面的控件代码: <asp:ListBox runat="server" ID="lbHoverTreeInfo" ClientIDMode="Static"> </asp:ListBox> 以下是实现代码: 1 using System; 2 using System.Web; 3 using System.Web.U

datePicker 及 timePicker 监听事件 获取用户选择 年月日分秒信息

public class MainActivity extends AppCompatActivity { private TimePicker timePicker; private DatePicker datePicker; private Calendar cal; private int year; private int month; private int day; private int hour; private int minute; @Override protected

【转】C#获取客户端及服务器端主机信息及其获取IP地址

原文发布时间为:2009-10-28 -- 来源于本人的百度文章 [由搬家工具导入] 小结: 1、REMOTE_ADDR 不可被修改,但是可能会获得代理服务器的IP,而不是实际客户端的IP。 2、通过 HTTP_VIA、HTTP_X_FORWARDED_FOR 我们可以获得代理服务器所代理的信息,但是这依靠代理服务器的支持。另外,这两个值可以被修改。我们通过它获得的信息可能是不真实的。另,HTTP_X_FORWARDED_FOR 的信息可能是一个集合,不含 REMOTE_ADDR 中的代理服务器

iOS下获取用户当前位置的信息

#import <MapKit/MKMapView.h> @interface ViewController (){ CLLocationManager *_currentLoaction; CLGeocoder *_geocoder; CLPlacemark *_placeMark; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically

获取本地计算机的主机信息

#include <afxcmn.h> // MFC support for Windows Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT #include "IPhelper/Iphlpapi.h" #pragma comment(lib, "IPhelper/IPHLPAPI.LIB") DWORD dwLen = 0, dwError; dwError = GetAdaptersInfo(NULL

获取用户的相关请求信息, 以及包括请求头

#在index文件中 1. print(type(request)) #看出所属库 2. from django.core.handlers.wsgi import WSGIRequest #查看WSGIRequest 发现主要的输入参数是environ 3. print(request.environ) #发现其是字典 4. 循环 request.environ 5.我们要找的请求头是HTTP_USER_AGENT print(request.environ['HTTP_USER_AGENT'