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

news2024/9/28 1:16:51

一、文件:/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 当中
    在这里插入图片描述
    示例:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/438856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习 day04(梯度下降算法,学习率,偏导数,执行过程示意图)

1. 梯度下降 我们可以用一种更系统的方法&#xff0c;来找到一组w&#xff0c;b&#xff0c;使成本函数的值最小。这个方法叫梯度下降算法&#xff0c;它可用于最小化任何函数&#xff0c;不仅仅包括线性回归的成本函数&#xff0c;也包括两个以上参数的其他成本函数在线性回…

C#:在datagridview中每行添加图片,点击图片删除整行

今天要讲的是关于datagridview中的操作。 首先现在winform界面中拉取一个datagridview控件&#xff0c;如下图所示&#xff1a; 然后需要在控件中添加如下图所示的三列数据&#xff1a; 其中第一列的数据类型选择如下图所示的DataGridViewImageColumn&#xff0c;另外两列的数…

基于matlab使用 CSI-RS 的 NR 下行链路发射端波束细化

一、前言 此示例演示了使用 5G 工具箱中的信道状态信息参考信号 &#xff08;CSI-RS&#xff09; 的下行链路发射端波束细化过程。该示例展示了如何在散射环境中向不同方向传输多个CSI-RS资源&#xff0c;以及如何根据参考信号接收功率&#xff08;RSRP&#xff09;测量结果选择…

PHP调用api接口,电商平台商品详情API接口(封装可高并发)

PHP传递参数 1、通过GET方式接收调用api接口传递的参数。 2、使用switch语句&#xff0c;当GET接收到不同的值时&#xff0c;调用不同的函数。 3、分别创建one(&#xff09;&#xff0c;two()&#xff0c;three()三个函数用于返回api接口调用后返回的数据。 4、在浏览器打开…

反弹shell原理与实现

一、什么是反弹shell&#xff1f; 反弹shell&#xff08;Reverse Shell&#xff09;是一种常用于网络攻击中的技术&#xff0c;其目的是让攻击者通过远程控制程序获取被攻击计算机的权限。反弹shell技术通常是通过在受害者计算机上运行一个程序&#xff08;称为“后门”&#…

CF55D-Beautiful numbers (数位dp)

l c m ( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ) 2520 lcm(1,2,3,4,5,6,7,8,9)2520 lcm(1,2,3,4,5,6,7,8,9)2520 若 x x x 能被它自己的所有非零位的数字整除&#xff0c;即能被它们的最小公倍数整除&#xff0c; x ≡ 0 ( m o d l c m ( { d i g i t [ i ] } ) ) x \equiv 0…

十大常见行业 BI 可视化应用

智能商业指的是利用互联网、物联网、自动化、人工智能等新一代信息技术&#xff0c;在一定程度上对市场判断、发展决策、业务复盘、业务预测等商业行为实现智能化、自动化&#xff0c;整个过程基本不需要人类参与。 很多企业部署了商业智能BI系统&#xff0c;这是一种包含了数…

Node 02-fs模块

fs 模块 fs 全称为 file system &#xff0c;称之为 文件系统 &#xff0c;是 Node.js 中的 内置模块 &#xff0c;可以对计算机中的磁盘进行操作。 本章节会介绍如下几个操作&#xff1a; 文件写入文件读取文件移动与重命名文件删除文件夹操作查看资源状态 文件写入 文件写入…

ubuntu常用命令

查询进程&#xff1a; ps -ef 杀死进程 kill -9 killall -9 chrome killall chromedriver 杀死所有chrome ps ef 查看运行的任务 ps -ef | grep python top 查看运行任务详情 后台启动Python脚本 可以使用下面的命令来启动上面的脚本&#xff0c;让Python在后台运行。 nohup…

Matlab论文插图绘制模板第87期—模值赋色的三维箭头图

在之前的文章中&#xff0c;分享了Matlab三维箭头图的绘制模板&#xff1a; 进一步&#xff0c;如果我们想对每一个箭头赋上颜色&#xff0c;以更加直观地表示其模值的大小&#xff0c;该怎么操作呢&#xff1f; 那么&#xff0c;来看一下模值赋色的三维箭头图的绘制模板。 先…

设计模式 -- 多例模式

前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同…

docker镜像制作: 构建UI镜像

前端构建docker镜像 事前准备 安装nodejs cd/usr/local/ wgethttps://npm.taobao.org/mirrors/node/v12.16.2/node-v12.16.2-linux-x64.tar.gz tar-zxvfnode-v12.16.2-linux-x64.tar.gz rm-rfnode-v12.16.2-linux-x64.tar.gz mvnode-v12.16.2-linux-x64node echoexportNODE_HO…

Matlab绘图案例,MATLAB画图大法,附详细代码

目录 1. 使用subplot创建多个子图 2. 绘制误差棒图 3. 绘制条形堆积图 4. 绘制堆积面积图 5. 绘制直方图并拟合曲线 6. 绘制等高线图 7. 绘制光滑的曲线 8. 绘制彩虹图 9. 绘制带有错误标记的散点图 10. 绘制水平堆积条形 11. 绘制饼图 12. 绘制极坐标图 13. 绘制…

怎样写好一本书

如果把“怎样写好一本书&#xff1f;”这个问题抛给ChatGPT&#xff0c;他的回答仍然像模像样。 虽然他回答的几点都没有错&#xff0c;但是&#xff0c;我个人认为&#xff0c;如果你想要写一本书并出版&#xff0c;那么首先应该考虑的是找一家出版社合作。毕竟&#xff0c;出…

关于HMC7044使用FXCO8晶振不能锁定的问题

查看FXCO8时钟输出波形: 查阅HMC7044手册,查看相关管教的电平要求: 可以看出共模要求有差异,不满足设计。 同时查看CVHD950的时钟输出电路。 可以看出共模1.6V,共模满足要求。不过这个幅度2.4V。也是满足设计要求的。 查看HMC7044关于输入电平标准(单端)的相关描…

HCIE-Cloud Computing LAB常见问题收集谱

第一题&#xff1a;FusionCompute 扩容CNA与对接共享存储 FusionCompute&#xff1a;关联存储资源失败 物理阵列里面太多没清理的了。然后去排查问题&#xff0c;存储地址也正确&#xff0c;管理接口也互联&#xff0c;IQN号也修改了&#xff0c;结果是启动器快满了 排查网…

记录机器学习时遇到的一些问题(纯新手

库 anaconda&spyder spyder运行报错ModuleNotFoundError: No module named ‘skleran’ 遂使用Anaconda Prompt 命令conda install sklearn 仍然报错&#xff0c;利用PYTHONPATH Manager增加路径&#xff08;过程中搜索sklearn包地址&#xff09; 仍然报错&#xff0c;发…

微信小程序如何判断刘海屏

发现问题 测试在测试项目过程中&#xff0c;发现IPhone13按钮显示不全&#xff0c;但是IPhone 14 pro 没问题。 正常情况 非正常情况 找到原因 小程序没有适配全部刘海屏 刘海屏: 指的是手机屏幕正上方由于追求极致边框而采用的一种手机解决方案。因形似刘海儿而得名。刘海…

【Java基础】消灭魔法值-常量枚举详述

&#x1f6a9; 本文已收录至专栏&#xff1a;JAVA基础 &#x1f44d;希望能对你有所帮助 一.引入 在开发中我们经常会遇到用一个值&#xff08;诸如数字或字符串&#xff09;表示一种状态的情况&#xff0c;例如&#xff1a; 用 1 表示男&#xff0c;用 0 表示女用 0 表示状态…

被裁员了,要求公司足额补缴全部公积金,一次补了二十多万!网友兴奋了,该怎么操作?...

被裁员后&#xff0c;能要求公司补缴公积金吗&#xff1f; 一位网友问&#xff1a; 被裁员了&#xff0c;要求公司把历史公积金全部足额缴纳&#xff0c;现在月薪2.3万&#xff0c;但公司每个月只给自己缴纳300元公积金&#xff0c;结果一次补了二十多万&#xff0c;一次性取出…