Linux系统编程(三)—— 文件编程(2)系统数据文件和信息

一、文件:/etc/passwd

这是 /etc/passswd 文件下的内容:
在这里插入图片描述

(1)标准库函数:getpwuid( ) 和 getpwname( )

在这里插入图片描述

  • getpwuid( )函数是根据 uid 来找到系统用户的信息;
  • getpwname( )函数是根据 name 来找到用户的信息;

(2)passwd结构体

在这里插入图片描述
其实该结构体就是表示 /etc/passwd 文件中的内容的结构体

例子:根据 uid 来找到用户名

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

int main(int argc, char **argv) {
    struct passwd *pwdline;

    if (argc < 2) {
        fprintf(stderr, "Usage ... \n");
        exit(1);
    }   
    
    // atoi()函数,把字符串转换成int类型数
    pwdline = getpwuid(atoi(argv[1]));
    puts(pwdline->pw_name);
    
    exit(0);
}

运行结果:
在这里插入图片描述

二、文件:/etc/group

这是 /etc/group 文件下的内容:
在这里插入图片描述

(1)标准库函数:getgrgid( ) 和 getgrgname( )

在这里插入图片描述

  • getgrgid( )函数是根据 gid 来找到组的相关信息;
  • getgrgname( )函数是根据 name 来找到组的相关信息;

(2)group结构体

在这里插入图片描述
和前面的类似

三、文件:/etc/shadow

root 用户才能用…

四、时间戳:time_t/char */struct tm

(1)系统调用函数:time( )

  • 作用:获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从1970年1月1日00:00:00到当前时刻的秒数。
    在这里插入图片描述
  • 有两种调用方式:
    1)time_t stamp = time(NULL);,结果保存在 stamp 中;
    2)time(&stamp);j结果也保存在 stamp 中

(2)标准库函数:gmtime( ) ,localtime( ),mktime( )

在这里插入图片描述

  • gmtime( )函数:取得目前时间和日期(参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回)

  • 结构体 tm :
    在这里插入图片描述

  • localtime( )函数:取得当地目前时间和日期 (将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回)

  • mktime( )函数:将时间结构数据转换成经过的秒数(用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数)

(3)标准库函数:strftime( )

  • tm 结构体中的时间,按照format的格式,变成字符串放在 s 当中
    在这里插入图片描述
    示例:
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值