0 背景

在 linux 系统上开发时,有时需要判断当前用户名,来做针对性的功能设计,比如不同用户写的日志文件路径不同,因此,本文对获取用户名方法做一个介绍

1 数据结构说明

在 passwd 结构体中含有相关的定义

struct  passwd {char  *pw_name;  /*user name */char  *pw_passwd;  /*user password */uid_t pw_uid;  /*user id */gid_t pw_gid;  /*group id */char  *pw_gecos;  /*user real name */char  *pw_dir;  /*home directory */char  *pw_shell;  /*shell program */
};

该结构体的定义在 unistd.h 头文件中,可通过 getpwuid(uid_t uid) 函数获取,因此可使用下边的方法进行判断

2 用户名获取

#include <unistd.h>
#include <pwd.h>
#include <iostream>int main()
{struct passwd* pwd;uid_t userid;userid = getuid();pwd = getpwuid(userid);std::cout << "pw_name:" << pwd->pw_name << std::endl;std::cout << "pw_passwd:" << pwd->pw_passwd << std::endl;std::cout << "pw_uid:" << pwd->pw_uid << std::endl;std::cout << "pw_gid:" << pwd->pw_gid << std::endl;std::cout << "pw_gecos:" << pwd->pw_gecos << std::endl;std::cout << "pw_dir:" << pwd->pw_dir << std::endl;std::cout << "pw_shell:" << pwd->pw_shell << std::endl;return 0;
}

输出如下

pw_name:amax
pw_passwd:x
pw_uid:1000
pw_gid:1000
pw_gecos:amax,,,
pw_dir:/home/amax
pw_shell:/bin/bash

Linux之C++获取系统用户名相关推荐

  1. Linux C/C++ 获取系统时间

    Linux C/C++ 获取系统时间 概述 C 标准库提供了 time() 函数与 localtime() 函数可以获取到当前系统的日历时间,但 time() 函数精度只能到秒级,如果需要更高精度的系 ...

  2. Linux驱动中获取系统时间

    最近在做VoIP方面的驱动,总共有16个FXS口和FXO口依次初始化,耗用的时间较多.准备将其改为多线程,首先需要确定哪个环节消耗的时间多,这就需要获取系统时间. #include <linux ...

  3. linux内核下获取系统时间,linux内核获取当前系统时间

    转载自:http://blog.csdn.net/heanyu/article/details/6552578 7.2. 获知当前时间 内核代码能一直获取一个当前时间的表示, 通过查看 jifies ...

  4. arm linux 时间获取,菜鸟自学ARM:linux下编程获取系统时间和设置时间

    获取时间有几种编程方法: 1 #include #include main(){ time_t t; struct tm *p; time(&t); p=gmtime(&t); pri ...

  5. linux c++ 文件修改时间,linux下C获取系统时间的方法

    Reference: asctime(将时间和日期以字符串格式表示) 相关函数 time,ctime,gmtime,localtime 表头文件 #include定义函数 char * asctime ...

  6. linux获得系统时间 c,linux c 获取系统时间

    #include main() { time_t timep; time (&timep); printf("%s",asctime(gmtime(&timep)) ...

  7. linux下 获取系统时间的相关函数

    linux下C获取系统时间的方法 asctime(将时间和日期以字符串格式表示) 相关函数 time,ctime,gmtime,localtime 表头文件 #include 定义函数 char * ...

  8. linux 获取启动时间不对,linux获取系统启动时间

    1.前言 时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精度各部相同.linux内核里面用一个名为jiffes的常量来计算时间戳.应用层有time.getdaytime等函数.今天需要 ...

  9. python使用psutil获取系统(Windows Linux)所有运行进程信息实战:CPU时间、内存使用量、内存占用率、PID、名称、创建时间等;

    python使用psutil获取系统(Windows Linux)所有运行进程信息实战:CPU时间.内存使用量.内存占用率.PID.名称.创建时间等: psutil模块可以跨平台使用,支持Linux/ ...

最新文章

  1. java jms消息删除_activemq的topic消息一直都会存在数据库中,为什么不会删除
  2. 工程名.xcodeproj 里面的project.pbxproj
  3. 第十六届全国大学生智能汽车竞赛(西部赛区) 竞速组成绩及获奖情况公示
  4. SpringBoot同时集成Redis和Guava作为缓存组件--进一步分析代码
  5. scrapy 第一个案例(爬取腾讯招聘职位信息)
  6. java web登录action_JavaWeb中登陆功能
  7. java中filter的用法
  8. Spring启动教程
  9. java常用的缓存_java 常用缓存 - 只对肉有感觉的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. cryengine开源了吗_Linux上的CryEngine支持,将开源带入厨房等
  11. git clone的速度慢到难以忍受问题的解决方法~
  12. androidpn环境搭建
  13. vue base64加密对象_想加密JavaScript怎么办,试试这款加密库!
  14. iOS设计模式解析(五)责任链模式
  15. 贴片电容封装及尺寸示意图
  16. 熊猫的python小课账号_校长,我要上车——python模拟登录熊猫TV
  17. python三菱fx3u通讯mx_[实例]三菱FX3U-485无协议通讯程序(含程序段)
  18. SDHC卡写单块和读单块
  19. win7电脑提升开机速度方法
  20. 尚医通笔记-后台管理

热门文章

  1. Unity3D 未挂载脚本自动初始化
  2. Swift 中字符串截取的几种常见情况
  3. J2EE开发实战基础系列一 HelloWorld
  4. Linux上安装NetCat
  5. via导出书签html,书签助手,迈出换用 Via 浏览器的第一步 | App+1
  6. htop与top命令
  7. const与const
  8. i512450h和i512500h对比区别大吗
  9. Java的三大体系架构
  10. 统计学 计算机论文发表,数学科学学院博士生史册在统计学顶级期刊 《Annals of Statistics》上发表论文...