当前位置: 首页 > news >正文

学习笔记第二十二天

1. time 函数

time_t time(time_t *t);

功能:获取当前时间(自1970年1月1日00:00:00 UTC以来的秒数)。

参数:t 是一个指向 time_t 类型的指针,用于存放返回的时间值。如果传递 NULL,函数将不

        会使用此参数,但仍会返回当前时间。

返回值:成功时返回当前时间(自1970年以来的秒数),失败时返回 (time_t)-1。注意,在

        大多数现代系统上,time 函数几乎不会失败,除非发生了一些极端情况(如系统时间被设置

为未来的某个点,而系统无法处理这种情况)。

 

2. localtime 函数

struct tm *localtime(const time_t *timep);

功能:将 time_t 类型的时间(秒数)转换为本地时间的 struct tm 结构体表示。

参数:timep 指向包含秒数的 time_t 类型的指针。

返回值:返回一个指向填充好的 struct tm 结构体的指针。如果发生错误(虽然非常罕见),则返

回 NULL

struct tm 结构体

 struct tm 
 {
int tm_sec;         /* seconds */
int tm_min;         /* minutes */
int tm_hour;        /* hours */
int tm_mday;        /* day of the month */
int tm_mon;         /* month */
int tm_year;        /* year */
int tm_wday;        /* day of the week */
int tm_yday;        /* day in the year */
int tm_isdst;       /* daylight saving time */
};

注意:返回的指针通常指向一个静态分配的内存区域,这意味着连续调用 localtime 可能会覆盖之

        前的结果。

3. ctime 函数

char *ctime(const time_t *timep);

功能:将 time_t 类型的时间(秒数)转换为一个可读的字符串形式。

参数:timep 指向包含秒数的 time_t 类型的指针。

返回值:返回一个指向静态分配的可读时间字符串的指针。连续调用可能会覆盖之前的字符串。如

        果发生错误(理论上不太可能),返回 NULL

4.getpwuid函数

struct passwd *getpwuid(uid_t uid);

功能:根据用户ID(UID)获取用户信息。

参数:uid_t uid:要查询的用户ID(UID)。

返回值:成功时,返回一个指向passwd结构体的指针,该结构体包含了对应的用户信息。

              失败时,返回NULL

5.getpwnam函数

功能:根据用户名获取用户信息。

函数构造:struct passwd *getpwnam(const char *name);

参数:const char *name:要查询的用户名。

返回值:成功时,返回一个指向passwd结构体的指针,该结构体包含了对应的用户信息。

              失败时返回NULL

6.getgrgid函数

struct group *getgrgid(gid_t gid);

功能:根据组ID(GID)获取组信息。

参数:gid_t gid:要查询的组ID(GID)。

返回值:成功时,返回一个指向group结构体的指针,该结构体包含了对应的组信息。失败时,返

        回NULL

7.getgrnam函数

struct group *getgrnam(const char *name);

功能:根据组名获取组信息。

参数:const char *name:要查询的组名。

返回值:成功时,返回一个指向group结构体的指针,该结构体包含了对应的组信息。失败时,返

        回NULL

8.symlink函数

int symlink(const char *oldpath, const char *newpath);

功能:创建一个指向oldpath的符号链接newpath

参数:const char *oldpath:原始文件的路径。const char *newpath:新创建的符号链接的路

        径。

返回值:成功时,返回0。失败时,返回-1,并设置errno以指示错误。

9.remov函数

int remove(const char *pathname);

功能:删除一个文件。

参数:const char *pathname:要删除的文件或目录的路径(注意:某些系统可能不允许使用

        remove删除目录)。

返回值:成功时,返回0。失败时,返回-1,并设置errno以指示错误。

10.rename函数

int rename(const char *oldpath, const char *newpath);

功能:重命名文件或目录,即将oldpath指向的文件或目录重命名为newpath

参数:const char *oldpath:原始文件或目录的路径。const char *newpath:新名称的路径。

返回值:成功时,返回0。失败时,返回-1,并设置errno以指示错误。

11.link函数

int link(const char *oldpath, const char *newpath);

功能:为oldpath指定的文件创建一个新的硬链接newpath

参数:const char *oldpath:原始文件的路径。const char *newpath:新硬链接的路径。

返回值:成功时,返回0。失败时,返回-1,并设置errno以指示错误。

12.truncate 函数

int truncate(const char *path, off_t length)

功能:将指定文件的大小截断到指定的长度。如果文件当前的大小大于指定长度,则文件内容会被

        截断;如果小于指定长度,则文件大小保持不变(。

参数:path:指向要截断的文件的路径的字符串。length:指定文件截断后的长度。

返回值:成功时返回 0。失败时返回 -1,并设置 errno 以指示错误类型。

13.perror 函数

void perror(const char *s);

功能:打印出由 errno 指示的最后一次系统或库函数调用遇到的错误的描述性消息。

参数:s:一个指向字符串的指针,该字符串会在错误消息前打印出来,通常用来提供上下文信

        息。

返回值:无返回值(void)。

14.strerror 函数

const char *strerror(int errnum);

功能:将错误码(errno 值)转换为可读的错误信息字符串。

参数:errnum:错误码,通常是 errno 的值。

返回值:返回一个指向静态分配的错误信息字符串的指针。注意,这个字符串是静态的,因此每次

        调用 strerror 时都可能会覆盖上一次调用的结果。

15.error 宏(非标准)

void error(int status, int errnum, const char *fmt, ...);

功能:打印错误信息和退出程序。这是一个非标准的宏,通常在某些特定的库(如 GNU C Library

        的 libgen.h 或其他第三方库)中提供。

参数:status:程序的退出状态码。errnum:错误码,通常是 errno 的值。fmt:一个格式字符

        串,用于构造错误信息。...:可变数量的参数,用于与 fmt 中的格式说明符匹配。

返回值:无返回值(void),但会导致程序退出。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • QT键盘和鼠标事件
  • 画菱形(曼哈顿距离)
  • 【深度学习】DeepSpeed,ZeRO 数据并行的三个阶段是什么?
  • mysql中B+树的数据存储
  • 【MySQL】最左前缀匹配原则
  • zdppy+vue3+onllyoffice开发文档管理系统项目实战 20240808 上课笔记
  • Java中的分布式日志与追踪
  • Postman Pre-request Script
  • 【Vue3】Pinia存储及读取数据
  • [Meachines] [Easy] valentine SSL心脏滴血+SSH-RSA解密+trp00f自动化权限提升+Tmux进程劫持权限提升
  • 07、MySQL-多表查询
  • 关于重复提交
  • k8s—Prometheus+Grafana+Altermaneger构建监控平台
  • 2024年软件测试八股文(含答案+文档)
  • Qwen2-7b+AnythingLLM+ollama 部署API调用
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 03Go 类型总结
  • AWS实战 - 利用IAM对S3做访问控制
  • classpath对获取配置文件的影响
  • js中forEach回调同异步问题
  • Laravel核心解读--Facades
  • mysql innodb 索引使用指南
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Python学习笔记 字符串拼接
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 每天10道Java面试题,跟我走,offer有!
  • 小程序开发之路(一)
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 应用生命周期终极 DevOps 工具包
  • 最简单的无缝轮播
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • ionic入门之数据绑定显示-1
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​虚拟化系列介绍(十)
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #Z2294. 打印树的直径
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (06)金属布线——为半导体注入生命的连接
  • (1)虚拟机的安装与使用,linux系统安装
  • (2)STM32单片机上位机
  • (C++17) optional的使用
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .Net中的集合
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @EnableAsync和@Async开始异步任务支持