目录函数以及链接文件

一、对stat里面的用户名时间做处理的函数
1.1.getpwuid()

struct passwd *getpwuid(uid_t uid);

功能: 根据用户id到/etc/passwd文件下解析获得 结构体信息

参数: uid:用户id

返回值: 成功返回id对应用户的信息 失败返回NULL

1. 2.getgrgid()

struct group *getgrgid(gid_t gid);

拿到组的结构体

功能: 根据gid到/etc/group文件中解析组信息

参数: gid:组id

返回值: 成功返回组信息 失败返回NULL

1.3 time()

1.获取秒数 CTS 北京时间

2.转换为需要个格式 系统时间的获取: 1.time 获得秒数

time_t time(time_t *t);

time_t 类型变量

第一种 准备一个变量,取地址,系统会将数据写入到变量里面

time_t tm;

time(&tm)

第二种

tm = time(NULL); 功能: 获得1970年到现在的秒数 第一步,先获得秒数再转成其他时间 参数: t:存放秒数的空间首地址 返回值: 成功返回1970年到现在的秒数 失败返回-1

1.4.ctime()

char *ctime(const time_t *timep);//date

功能: 将时间秒数转化成字符串

参数: timep:保存时间空间的地址

返回值: 成功返回获得时间字符串的首地址 失败返回NULL

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 *

/ };

1.5 localtime()

struct tm *localtime(const time_t *timep);

功能: 将一个秒数转化成日历时间

参数: timep:保存秒数空间的地址

返回值: 成功返回保存日历时间结构体的指针 失败返回NULL

 

注意

年+1900    月+1

1.6 上色

终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。 转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, = 用八进制表示的 33)。

\033[显示方式;前景色;背景色m

显示方式:0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、5(闪烁)、25(非闪烁)、7(反显)、27(非反显)

前景色:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)

背景色:40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋红)、46(青色)、47(白色)

\033[0m 默认 \033[1;32;40m 绿色\033[1;31;40m 033[1;31;40m 红色

printf( "\033[1;31;40m 输出红色字符 \033[0m" )

 二、链接文件
2.1 symlink()

软链接文件、符号链接文件 硬链接文件

命令行:ln -s 123

softlink 快捷方式

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

第一个是路径(被操作对象,路径写全),第二个新起的文件名

功能: 创建一个链接向oldpath文件的新符号链接文件

参数: oldpath:被链接向的文件的路径 newpath:新符号链接文件

返回值: 成功返回0 失败返回-1

2.2.remove()

remove 对应 rm -fr 只能删文件 不能删目录,如果要删目录,则里面需要进行判断一下,如果是目录。

调用一下rmdir int remove(const char *pathname);

功能: 删除一个文件 参数: pathname:删除文件的路径

返回值: 成功返回0 失败返回-1

2.3 rename()

//mv rename 相当于mv(改名字,文件剪切 )

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

功能:只能改名字 将一个老的路径名改为新的路径

参数: oldpath:老路径名 老名字 newpath:新路径名 新名字

返回值: 成功返回0 失败返回-1

2.4.link()

ln 1 2 int link(const char *oldpath, const char *newpath);

功能: 创建一个硬链接文件

参数: oldpath:要链接向的文件 newpath:创建的新硬链接文件

返回值: 成功返回0 失败返回-1

2.5 truncate()

清空文件 ,修剪也可以把文件变成自己想的那么大

小的就删,大的用\0 去填充

注意要对文件进行修改的话,要确保这个文件是存在的,要不然没有办法进行修改。

三、出错相关函数接口
3.1 .perror()

系统可以提供具体错误的原因,不需要自己手动的去写

void perror(const char *s);-->strerror() *s 起标识作用,一般写上一个函数,因为一个程序错误可能很多,所以要知道是那个,注意文件错误了,就结束,不要在往下走了,这个函数只有打印错误信息,没有结束功能。

功能: 打印s字符串和errno对应的错误信息

参数: s:要打印在终端上的出错信息

返回值: 缺省

3.2.strerror()

系统错误大概130多个,可以多写编号,意味着扩展

char *strerror(int errnum);给的数字,系统会自定义错误号

功能: 打印errnum出错码对应的出错信息

参数: errnum:出错errno号

返回值: 成功返回对应的错误信息 ruturn 1;

3.3.error()

===>>>exit();

比较复杂的错误

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

功能: 2个功能 程序出错打印对应出错原因和用户输入字符串并退出

参数:

status:程序退出的状态 EXIT_FAILURE 1 EXIT_SUCCESS 0

errnum:错误码 format: 类似printf打印

返回值: 缺省

注意

1.退出状态(0/1)

2.错误号,将错误号传进去

3.代表字符串printf 打印l

./a.out 里面有errno就是错误号,加头文件errno.h

c 内置宏

--FILE --表示是那个文件

LINE表示第几行

func表示在那个函数

DATE TIME c 内置宏

 四、Makefile 文件编写
4.1 makefile 定义

MAKEFILE 编写 规则文件(事先写好一次)

多个.c 编译

Makefile 编写 工程管理工具

vim 编辑器,gcc 编译器 ,gdb 调试器 (逻辑错误) make

4.2 编写

示例一

a.out:main.c add.c mul.cgcc main.c add.c mul.c -o a.out clean:rm a.out 

示例二

a.out:main.c add.c mul.cgcc $^ -o $@//^ 依赖 @ 目标

示例三

SRC=main.c
SRC+=add.c mul.c
OBJ=all
$(OBJ):$(SRC)gcc $(SRC) -o $(OBJ)
clean:rm $(OBJ)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据复盘“黑色星期一”:加密市场震荡,代币表现如何?

8月5日的“黑色星期一”成为了全球金融市场的动荡日,这一波及到加密市场的剧烈震荡导致了大量清算事件和代币的暴跌。本文将通过数据复盘,分析这一事件中加密货币的表现,并探讨未来市场的可能走向。 一、暴跌中的惨痛数据 在“黑色星期一”事…

Jenkins构建异常,Dockerfile中ADD或COPY及相对路径

Jenkins构建异常,Dockerfile中ADD或COPY及相对路径 制品构建前后端异常 #前端 09:45:53 docker build -t hubtest.......com.cn/duty_record/......-web-01:origin-master-20 -f vue/script/Dockerfile vue/script 09:45:54 Sending build context to Docker da…

zabbix7.0TLS-05-快速入门-触发器

文章目录 1 概述2 查看触发器3 添加触发器4 验证触发器5 查看问题6 问题恢复 1 概述 监控项用于收集数据,但是我们并不能时刻观测每个监控项的数据,看看哪个监控项的数据超过了正常可接受的数值或状态,比如 CPU 负载高于 90%、磁盘使用率低于…

TypeScript位运算

参考文献: https://blog.csdn.net/xuaner8786/article/details/138858747 https://www.runoob.com/typescript/ts-operators.html 位运算符 TypeScript 中的位运算符用于在二进制位级别上操作数字。这些运算符在处理整数和底层系统编程时特别有用。以下是一些使用…

互联网医院系统源码与医保购药APP开发:探索医疗的数字化转型

互联网医院系统的开发是一个复杂的工程,需要多个模块的有机结合才能实现高效、安全的在线医疗服务。以下是互联网医院系统的几个关键组成部分: 1.在线问诊模块 2.电子病历管理 3.在线预约与支付系统 4.远程医疗设备对接 一、医保购药APP的开发要点 …

三大浏览器Google Chrome、Edge、Firefox内存占用对比

问题 Chrome、Edg、Firefox三家究竟谁的占用少 结论 打开一个页面内存占用 Firefox>Edge>Chrome 打开打量页面内存占用 Firefox>Chrome>Edge 从监视器可以看到Edge增加一个页面增加一个页面不到100M而其它浏览器需要150M左右;Firefox浏览器主线程内存占用800M比…

【实现100个unity特效之16】unity2022之前或者之后版本实现全屏shader graph的不同方式 —— 适用于人物受伤红屏或者一些其他状态效果

最终效果 文章目录 最终效果前言unity2022版本 Fullscreen shader graph首先,请注意你的Inity版本,是不是2022.2以上,并且项目是URP项且基本配置 修改shader graph边缘效果动起来优化科幻风制作一些变量最终效果最终节点图代码控制 2022之前版…

【xilinx】如何从 Vivado GUI 启用/禁用 IP Core container

问题描述 如何从 Vivado GUI 启用/禁用 IP 核容器? 解决方案 要通过 GUI 启用/禁用 2023.1 之前的 Vivado 版本中的 IP 核容器,请按照以下步骤操作: 选择设置 -> IP -> 使用核心容器 在 Vivado 2023.1 及更高版本中,请按照…

Unity初识

1:下载Unity Hub 下载地址:Unity官方下载_Unity最新版_从Unity Hub下载安装 | Unity中国官网 建议直接使用unity hub因为支持比较全面,适合新手 有中文 管理 编辑器等等功能支持 下载安装不过多介绍 2:Unity Hub汉化 因为我…

elasticsearch的使用(二)

DSL查询 Elasticsearch的查询可以分为两大类: 叶子查询(Leaf query clauses):一般是在特定的字段里查询特定值,属于简单查询,很少单独使用。 复合查询(Compound query clauses)&am…

sql注入-常见注入方法复现

环境演示均已sql-labs为例 1、报错注入 1.1常用的报错注入的函数 掌握好extractvalue、updatexml、floor报错,floor报错较难需要多理解,updatexml较为常用 定义 报错注入是通过特殊函数错误使用并使其输出错误结果来获取信息的。是一种页面响应形式…

centos上传工具

yum install lrzsz 安装完成之后 作用是 输入 rz 可以本地上传文件

python自动化笔记:pytest框架

目录 一、pytest介绍二、测试用例命名规则2.1、pytest命名规则2.2、python命名规范 三、pytest运行方式3.1、主函数方式3.2、命令行方式3.3、通过pytest.ini的配置文件运行(常用) 四、跳过测试用例4.1 无条件跳过4.2 有条件跳过 五、用例的前后置&#x…

GD - GD-Link-V2接口引脚线序

文章目录 GD - GD-Link-V2接口引脚线序概述笔记接口线序连接方式 END GD - GD-Link-V2接口引脚线序 概述 弄了一个GD-Link-V2, 看了说明书,记录一下线序。 笔记 接口线序 出厂的GD-LINK-V2默认是向外供电为3.3V。 输出插座为2x5P - 2.54mm. 从GD-LINK-V2的(TOP…

数据结构——单向链表

目录 前言 一、单向链表 二、单向链表基本操作 1、链表单创建 2.节点插入 (1)尾部插入 (2)任意位置插入 3、单向链表节点删除 4、链表打印 5、释放链表 6、链表逆序 ...... 三、链表测试 总结 前言 链表(Linked List&a…

万字长文讲透数字化转型

温馨提醒:1.6w字详细拆解,内容篇幅较长,建议先收藏~ 数字化浪潮正在席卷全球,践行数字化转型和提升企业的运营水平与竞争力,已经成为各国企业角力全球市场的重要议题。为此,很多国家政府都推出了鼓励和推动…

(el-Time-Picker)操作(不使用 ts):Element-plus 中 TimePicker 组件的使用及输出想要时间格式需求的解决过程

Ⅰ、Element-plus 提供的 TimePicker 时间选择器组件与想要目标情况的对比&#xff1a; 1、Element-plus 提供 TimePicker 组件情况&#xff1a; 其一、Element-ui 自提供的 TimePicker 代码情况为(示例的代码)&#xff1a; // Element-plus 提供的组件代码: <template>…

Go - 10. * 值类型和指针类型的差异

目录 一.引言 二.接收者类型 三.代码示例 1.指针接收者 2.值接收者 3.运行结果对比 4.代码修改 5.刨根问底 四.总结 一.引言 go 语言中 func (c *Title) 和 func (c Title) 两个方法的传参差一个 * 号&#xff0c;二者的区别是一个是指针类型&#xff0c;一个是值类型…

MATLAB中的imshow函数的使用方法及实例应用

一、imshow函数 imshow是MATLAB工具软件中用于显示图像的函数&#xff0c;它支持多种图像类型&#xff0c;包括灰度图像、真彩色图像、索引图像等。以下是对imshow常用用法: imshow(I) 在图窗中显示灰度图像 I。imshow 使用图像数据类型的默认显示范围&#xff0c;并优化图窗、…

React(三):PDF文件在线预览(简易版)

效果 依赖下载 https://mozilla.github.io/pdf.js/getting_started/ 引入依赖 源码 注意&#xff1a;pdf文件的预览地址需要配置代理后才能显示出来 import ./index.scss;function PreviewPDF() {const PDF_VIEWER_URL new URL(./libs/pdfjs-4.5.136-dist/web/viewer.html, im…