zoukankan      html  css  js  c++  java
  • getpwuid()函数

    linux getpwuid 得到指定用户信息
    和系统数据相关的passwd 结构 
    和系统数据相关的一个结构passwd定义如下 
    /* The passwd structure.      */ 
    struct passwd 
    { 
          char *pw_name;       /* 用户名*/ 
          char *pw_passwd;     /* 密码.*/ 
          __uid_t pw_uid;      /* 用户ID.*/ 
          __gid_t pw_gid;      /*组ID.*/ 
          char *pw_gecos;      /*真实名*/ 
          char *pw_dir;        /* 主目录.*/ 
          char *pw_shell;      /*使用的shell*/ 
    }; 
    该结构描述了/etc/passwd的文件记录行 包括用户名 密码 用户ID 用户组ID 真实姓名 用户主目录和默默认SHELL 
    相关的API有 
    struct passwd *getpwuid(uid uid) 
    struct paswd *getpwnam(const char *name) 
    getpwuid 根据传入的用户ID返回指向passwd的结构体 该结构体初始化了里面的所有成员 
    getpwnam 和getpwuid一样 只是传入的参数是用户名 
    小试牛刀:这个程序只是作演示并没有作错误处理 
    #include <stdio.h> 
    #include <stdlib.h> 
    #include <sys/types.h> 
    #include <sys/stat.h> 
    #include <fcntl.h> 
    #include <unistd.h> 
    #include <pwd.h> 
    int main (void) 
    { 
           struct passwd *passwd; 
           passwd=getpwuid(getuid()); 
           /** passwd=getcwnam("phpos"); **/ 
           printf("Username:%s/n",passwd->pw_name); 
           printf("Password:%s/n",passwd->pw_passwd); 
           printf("uid:%d/n",passwd->pw_uid); 
           printf("gid:%d/n",passwd->pw_gid); 
           printf("shell:%s/n",passwd->pw_shell); 
           printf("dir:%s/n",passwd->pw_dir); 
           return 0; 
    } 
  • 相关阅读:
    BZOJ3732: Network
    BZOJ2705: [SDOI2012]Longge的问题
    BZOJ3712: [PA2014]Fiolki
    BZOJ3709: [PA2014]Bohater
    BZOJ3668: [Noi2014]起床困难综合症
    CoderForces985F-Isomorphic Strings
    CodeForces985C-Liebig's Barrels
    Open-Pit Mining
    Multiplication Game
    象棋
  • 原文地址:https://www.cnblogs.com/guangliang/p/4358316.html
Copyright © 2011-2022 走看看