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

关于linux软件编程4:目录IO和一些时间函数

目录IO

1操作方式

  • 打开目录文件
  • 读取目录文件中的目录项
  • 关闭目录文件

2函数接口
1. opendir

原型:DIR *opendir(const char *name);
功能:打开目录流获得目录流指针
参数:name:目录文件的路径
返回值:成功返回目录流指针失败返回NULL

2. closedir

原型:int closedir(DIR *dirp);功能:
关闭目录流指针

3. readdir

原型:struct dirent *readdir(DIR *dirp);
功能:读取并返回下一个目录项的信息
参数:dirp:目录流指针
返回值:成功返回包含目录项信息结构体指针失败返回NULL读到文件末尾返回NULLstruct dirent {ino_t          d_ino;       /* Inode number:通过inode找到文件对应的磁盘空
间位置 */off_t          d_off;       /* Not an offset; see below */unsigned short d_reclen;    /* Length of this record */unsigned char  d_type;      /* Type of file; not supportedby all filesystem types:文件类型 */char           d_name[256]; /* Null-terminated filename: 文件名*/};

4. getcwd

原型:char *getcwd(char *buf, size_t size);
功能:获得当前工作目录的绝对路径
参数:buf:存放路径字符串空间首地址size:最多存放字符串的大小
返回值:成功返回包含字符串空间的首地址失败返回NULL

5. chdir

原型:int chdir(const char *path);
功能:切换当前的工作路径
参数:path:要切换的路径
返回值:成功返回0失败返回-1 

6. mkdir

原型:int mkdir(const char *pathname, mode_t mode);
功能:创建目录文件

注意:

r:读权限,决定用户是否能够查看目录下所有文件名

w:写权限,决定用户是否能够在目录下新建文件

x:执行权限,决定用户是否能够进入目录

7. rmdir

原型:int rmdir(const char *pathname);
功能:删除目录文件

文件名和路径:

file.txt:文件名

./file.txt:路径

时间相关的函数接口

1.时间类型分类:

1. time_t 类型时间

  • 1970-1-1到现在的秒数
  • 一般用于时间计算相关逻辑

2. struct tm 类型时间

  • 包含年月日时分秒信息

3. char *字符串类型时间

  • 由时间拼接的字符串

2.函数接口:

1. time

原型:time_t time(time_t *tloc);
功能:返回1970-1-1日到现在的秒数
参数:存放秒数空间的首地址
返回值:成功返回秒数失败返回-1

2. localtime

原型:struct tm *localtime(const time_t *timep);
功能:将秒数转换为结构体时间
参数:timep:1970-1-1到现在的秒数
返回值:成功返回包含时间的结构体指针失败返回NULLstruct tm {int tm_sec;    /* Seconds (0-60) */int tm_min;    /* Minutes (0-59) */int tm_hour;   /* Hours (0-23) */int tm_mday;   /* Day of the month (1-31) */int tm_mon;    /* Month (0-11) */int tm_year;   /* Year - 1900 */int tm_wday;   /* Day of the week (0-6, Sunday = 0) */int tm_yday;   /* Day in the year (0-365, 1 Jan = 0) */int tm_isdst;  /* Daylight saving time */};

3. mktime

原型:time_t mktime(struct tm *tm);
功能:
将结构体时间转换为time_t类型的时间
参数:
tm:结构体时间的首地址
返回值:
成功返回time_t时间
失败返回-1 

4. ctime

原型:char *ctime(const time_t *timep);
功能:
将time_t时间转换为字符串时间

exe:实现从终端输入单词,打印单词的含义

http://www.dtcms.com/a/330322.html

相关文章:

  • PAT 1065 A+B and C (64bit)
  • 驱动开发系列62 - glBufferDataARB实现分析
  • Windows下cuda的安装和配置
  • BGP 笔记梳理
  • 110. 字符串接龙
  • 【Spring AI 1.0.0】Spring AI 1.0.0框架快速入门(6)——MCP Client(MCP客户端)
  • 最新Coze(扣子)智能体工作流:用Coze实现「图片生成-视频制作」全自动化,3分钟批量产出爆款内容
  • Docker网络命名空间隔离与VPS服务器环境的连通性测试方法解析
  • kali linux 2025.2配置局域网打印服务器惠普打印机HP1108p
  • MySQL查询表结构、表大小
  • 告别意外中断,iOS辅助工具按键精灵「异常停止重启脚本」功能介绍
  • <c1:C1DateTimePicker的日期时间控件,控制日期可以修改,时间不能修改,另外控制开始时间的最大值比结束时间小一天
  • git clone 支持在命令行临时设置proxy
  • 康托展开与逆康托展开
  • 词向量转化
  • RocketMQ 消息存储机制 CommitLog和ConsumerQu
  • 第八课:python的运算符
  • 从 VLA 到 VLM:低延迟RTSP|RTMP视频链路在多模态AI中的核心角色与工程实现
  • 论文分享 | Flashboom:一种声东击西攻击手段以致盲基于大语言模型的代码审计
  • 04-spring-手写spring-demo-aop0V1
  • Canal解析MySQL Binlog原理与应用
  • Unity、C#常用的时间处理类
  • Laravel 使用ssh链接远程数据库
  • 使用 Simple Floating Menu 插件轻松实现浮动联系表单
  • AI一周事件(2025年8月6日-8月12日)
  • [ Mybatis 多表关联查询 ] resultMap
  • ResourcelessTransactionManager的作用
  • 第三天-如何在DBC中描述CAN Signal的“负数/值”
  • JetPack系列教程(六):Paging——让分页加载不再“秃”然
  • 理财学习资料推荐