Chap5 嵌入式Linux应用程序开发(ref).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 嵌入式Linux应用程序开发 5.1 开发环境的建立 5.2 Linux及开发工具的使用 Linux常用命令 gcc编译器的使用 Makefile文件和Make命令 配置文件 Vi编辑器的使用 Linux下C语言编程 5.3 引导程序的移植 嵌入式Linux的引导机理分析 VIVI简介 VIVI的代码分析与移植 5.4 Linux操作系统的移植 内核移植 系统移植 5.5 应用程序的调试 编写应用程序 下载应用程序 调试应用程序 2.文件属性 文件具有各种各样的属性,除了上面提到的文件权限以外,文件还有创建时间、大小等属性。有时候要判断文件是否可以进行某种操作,此时可以使用access函数。 int?access(const?char?*pathname,int?mode);? 其中,pathname是文件名称,mode是所要判断的属性。可以取以下值或者是其组合: ? R_OK文件可以读; ? W_OK文件可以写; ? X_OK文件可以执行; ? F_OK文件存在。 当测试成功时,函数返回0;如果有一个条件不符时,返回?1。如果要获得文件的其他属性,可以使用函数stat或者fstat。 int?stat(const?char?*file_name,struct?stat?*buf);? int?fstat(int?filedes,struct?stat?*buf);? struct?stat?{? dev_t?st_dev;?/*?设备?*/? ino_t?st_ino;?/*?节点?*/? mode_t?st_mode;?/*?模式?*/? nlink_t?st_nlink;?/*?硬连接?*/? uid_t?st_uid;?/*?用户ID?*/? gid_t?st_gid;?/*?组ID?*/? dev_t?st_rdev;?/*?设备类型?*/? off_t?st_off;?/*?文件字节数?*/? unsigned?long?st_blksize;?/*?块大小?*/? unsigned?long?st_blocks;?/*?块数?*/? time_t?st_atime;?/*?最后一次访问时间?*/? time_t?st_mtime;?/*?最后一次修改时间?*/? time_t?st_ctime;?/*?最后一次改变时间(指属性)*/? }; stat用来判断没有打开的文件,而fstat用来判断打开的文件。使用最多的属性一般是st_mode,通过该属性可以判断给定的文件是一个普通文件,还是一个目录或者连接。可以使用下面几个宏来判断: ? S_ISLNK(st_mode),是否是一个连接; ? S_ISREG,是否是一个常规文件; ? S_ISDIR,是否是一个目录; ? S_ISCHR,是否是一个字符设备; ? S_ISBLK,是否是一个块设备; ? S_ISFIFO,是否是一个FIFO文件; ? S_ISSOCK,是否是一个SOCKET文件。 3.目录文件的操作 在编写程序的时候,有时候想得到当前的工作路径。C库函数提供了getcwd来解决这个问题: char?*getcwd(char?*buffer,size_t?size);? 如果提供一个size大小的buffer,getcwd会把当前的路径拷贝到buffer中,如果buffer太小,函数会返回?1和一个错误号。Linux提供了大量的目录操作函数,下面列出了几个比较简单和常用的函数: int?mkdir(const?char?*path,mode_t?mode); DIR?*opendir(const?char?*path);? struct?dirent?*readdir(DIR?*dir);? void?rewinddir(DIR?*dir);? int?closedir(DIR?*dir);? mkdir就是创建一个目录,opendir打开一个目录为以后读做准备,readdir读一个打开的目录,rewinddir是用来重读目录的,closedir是关闭一个目录。 下面的程序有一个输入参数,如果这个参数是一个文件名,输出这个文件的大小和最后修改的时间;如果是一个目录,输出这个目录下所有文件的大小和修改时间。 static?int?get_file_size_time(const?char?*filename)? {? struct?stat?statbuf;? if(stat(filename,statbuf)==-1)? {?

文档评论(0)

飞扬的岁月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档