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

嵌入式开发学习日志(linux系统编程--io文件偏移函数(3)和目录)Day26

一、io文件偏移函数

1.lseek

形式:

                off_t lseek(int fd, off_t offset, int whence);

【int fd】:需要操作的文件;

【off_t offset,】:偏移量;

【 int whence】:SEEK_SET:开始;SEEK_CUR  : 文件中间(一般指文件上次操作结束时候de位置)  SEEK_END:文件末尾;

函数的返回值是偏移量;

注意:文件偏移之后如果不写入数据,则文件偏移不成功,文件大小不变;

eg:

fopen和open文件权限对应的关系

rO_RDONLY 
r+O_RDWR
wO_WRONLY|O_CREAT|O_TRUNC
w+O_RDWR|O_CREAT|O_TRUNC 
a(文件后追加读)O_WRONLY|O_CREAT|O_APPEND
a+(文件后追加读写)O_RDWR|O_CREAT|O_APPEND
fopen的操作权限默认为0666

2、fileno

形式:

                        int fileno(FILE *stream);

功能:            FILE * fp===>int fd

                 获得一个文件流指针中的文件描述符;

FILE *stream】:需要操作的文件名;

返回值: 成功返回文件描述符;

                       失败返回-1;

注意:在使用此函数的时候,文件的权限不变;

关闭文件:关闭文件时,(fclose和close都可以关闭文件),建议用封装等级高的函数关闭 fclosk           

eg:

3、fsopen

 形式:

                 FILE *fdopen(int fd, const char *mode);

参数:

                【int fd】:需要操作的文件;

                【 const char *mode】:权限和原来的文件权限对应;

功能:将文件描述符转换为文件流指针;

                      int fd ===> FILE * fp

返回值:成功返回文件流指针;

                失败返回NULL;

关闭文件:关闭文件时,(fclose和close都可以关闭文件),建议用封装等级高的函数关闭 fclosk 

eg:

 

 4、perror      系统级别报错函数;

形式:

                void perror(const char *s);

先判断是否有错,在进行打印报错信息;man 2和man 3的函数可以用;未调用函数时,返回值为success;

【error】:错误号

eg:

 文件属性

一、目录

        目录操作的步骤:

                1、打开;

                2、读取目录;

                3、关闭目录;

1、opendir

        形式:

                 DIR *opendir(const char *name);

【const char *name】:需要打开的目录名;

功能:打开一个目录,获得该目录的目录流指针;

返回值:

                成功返回值为目录流指针;

                失败返回NULL;

2、readdir

形式:

        struct dirent *readdir(DIR *dirp);

【DIR *dirp】:目录流指针;

功能:从目录流中读取文件信息,并保存的结构体信息;

返回值:为包含信息的结构体;

                出错或者读到目录流末尾,返回值为NULL;

ino_t          d_ino/* Inode number */    
 
 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 supported by all filesystem types */文件的类型
char    d_name[256]/* Null-terminated filename */文件的名字
DT_BLK块设备B
DT_CHR字符设备C
DT_DIR目录D
DT_FIFO管道P
DT_LNK软连接/符号链接L
DT_REG规则文件/普通文件-
DT_SOCK网络文件
DT_UNKNOW未知文件

eg:

 

 3、关闭文件

形式:

                 int closedir(DIR *dirp);

功能:关闭之前已经打开的目录流对象;

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

eg:

        

时间函数 

1、time

形式:

        time_t time(time_t *tloc);

【time_t *tloc】:存放秒数的空间首地址;

传参为NULL时,返回值为1970年1月1日0时0分0秒至今的秒数

2、localtime

形式:

                struct tm *localtime(const time_t *timep);

功能:将一个秒数转换为日历时间;

【const time_t *timep】:保存秒数空间的地址;

返回值:成功返回值保存日历时间结构体指针;

失败返回NULL;

 eg:

 

 总结

 

 

相关文章:

  • 【信息系统项目管理师】第16章:项目采购管理 - 23个经典题目及详解
  • Vue.js教学第十一章:VueRouter实战指南
  • 华为Cangjie编程技术深度解析(续篇1)
  • Java 内存模型中的读、写屏障
  • C++ QT生成GIF,处理原始图像RGBA数据,窗口生成简单的动画
  • 数据结构篇--二项队列
  • SQLynx:一款跨平台的企业级数据库管理工具
  • 雅思英语考试基本介绍
  • highCharts生成3D饼图
  • App Builder技术选型指南:从AI编程到小程序容器,外卖App开发实战
  • canvas(三)-动画3d
  • 解决vscode在任务栏显示白色图标
  • LeetCode Hot100 (哈希)
  • 《量子计算实战》PDF下载
  • Java异常分类与Spring事务回滚机制深度剖析
  • NFS服务器实验
  • Linux Shell编程(五)
  • 快速部起一个Openwhisk平台,使用telego k8s服务部署能力内网部署
  • Linux性能监控工具nmon
  • 仿腾讯会议——视频发送接收
  • phpcms做网站页面开发/怎么分析一个网站seo
  • 自适应网站一般做多大尺寸/国内重大新闻十条
  • wordpress slider 插件/家庭优化大师免费下载
  • 网站的步骤/百度快照手机入口
  • 建设网站需求文档/上海搜索优化推广
  • 三门峡做网站公司/seo综合查询什么意思