嵌入式Linux高级编程--02posix_目录操作.ppt

上传人:qwe****56 文档编号:70023390 上传时间:2023-01-14 格式:PPT 页数:18 大小:1.19MB
返回 下载 相关 举报
嵌入式Linux高级编程--02posix_目录操作.ppt_第1页
第1页 / 共18页
嵌入式Linux高级编程--02posix_目录操作.ppt_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《嵌入式Linux高级编程--02posix_目录操作.ppt》由会员分享,可在线阅读,更多相关《嵌入式Linux高级编程--02posix_目录操作.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、嵌入式嵌入式Linux高级编程高级编程Linux目录与文件王莉目录操作打开目录:opendir DIR*opendir(const char*name);读取目录:readdirstruct dirent*readdir(DIR*dir);关闭目录:closedirint closedir(DIR*dir);打开目录#include#include DIR*opendir(const char*name);功能:opendir()用来打开参数name指定的目录,并返回DIR*形态的目录流。返回值:成功返回目录流,失败返回NULL读取目录#include#include struct diren

2、t*readdir(DIR*dir);功能:readdir()返回参数dir目录流的下个目录的进入点。返回值:成功返回结构体指针,错误返回NULL。结构说明:struct dirent ino_t d_ino;/*inode number*/off_t d_off;/*offset to the next dirent*/unsigned short d_reclen;/*length of this record*/unsigned char d_type;/*type of file*/char d_name256;/*filename*/;关闭目录#include#include int

3、 closedir(DIR*dir);功能:closedir()关闭dir所指的目录流。返回值:成功返回0,失败返回-1,错误原因存在errno中。#include#include#include#include int main(void)DIR*dir;struct dirent*dp;int count;if(dir=opendir(“/root)=NULL)perror(opendir);exit(1);count=0;while(dp=readdir(dir)!=NULL)/每次读取当前目录下的一个文件 printf(%sn,dp-d_name);count+;closedir(di

4、r);return 0;作业把/root目录生成一个文件,文件内容就是该目录下的所有文件及目录名 文件属性#include#include#include int stat(const char*path,struct stat*buf);功能:查看文件或目录属性返回值:成功返回0,错误返回-1stat()函数用来将参数path所指的文件状态复制到参数buf所指的结构中.struct stat dev_t st_dev;/*ID of device containing file*/ino_t st_ino;/*inode number*/mode_t st_mode;/*protection

5、*/nlink_t st_nlink;/*number of hard links*/uid_t st_uid;/*user ID of owner*/gid_t st_gid;/*group ID of owner*/dev_t st_rdev;/*device ID(if special file)*/off_t st_size;/*total size,in bytes*/blksize_t st_blksize;/*blocksize for filesystem I/O*/blkcnt_t st_blocks;/*number of blocks allocated*/time_t

6、st_atime;/*time of last access*/time_t st_mtime;/*time of last modification*/time_t st_ctime;/*time of last status change*/;int fstat(int filedes,struct stat*buf);int lstat(const char*pathname,struct stat *buf);stat函数返回一个与此命名文件有关的信息结构,fstat函数获得已在描述符filedes上打开的文件的有关信息。lstat函数类似于stat,但是当命名的文件是一个符号连接时,

7、lstat返回该符号连接的有关信息,而不是由该符号连接引用的文件的信息。文件类型 宏文件类型S _ I S R E G()普通文件S _ I S D I R()目录文件S _ I S C H R()字符特殊文件S _ I S B L K()块特殊文件S _ I S F I F O()管道或F I F OS _ I S L N K()符号连接(P O S I X.1或S V R 4无此类型)S _ I S S O C K()套接字(P O S I X.1或S V R 4无此类型)#include#include#include int main(int argc,char*argv)int i;

8、struct stat buf;/文件属性及状态变量 char *msg;for(i=1;iargc;i+)printf(%s:,argvi);if(lstat(argvi,&buf)0)/将参数当做文件或目录查看其属性状态,结果保存在buf变量中 printf(*lstat error.n);continue;if(S_ISREG(buf.st_mode)/如果是一个普通文件则.msg=regular;else if(S_ISDIR(buf.st_mode)/如果是一个目录文件则。msg=directory;else if(S_ISCHR(buf.st_mode)msg=character

9、special;else if(S_ISBLK(buf.st_mode)msg=block special;else if(S_ISFIFO(buf.st_mode)msg=fifo;else if(S_ISLNK(buf.st_mode)msg=symbolic link;else if(S_ISSOCK(buf.st_mode)msg=socket;else msg=*unknown mode;printf(%sn,msg);exit(0);练习1.将/dev/目录下所有字符设备文件名保存到chafile.txt文件中2.将/etc/目录下所有是目录的目录名保存到dirfile.txt其他

10、函数:#include#include int chmod(const char*path,mode_t mode);功能:chmod函数可以更改现存文件的存取许可权。返回值:成功返回0,错误返回-1。#include#include int chown(const char*path,uid_t owner,gid_t group);功能:chown函数可用于更改文件的用户ID和组ID。返回值:成功返回0,错误返回-1。权限部分的实现S _ I S U I D 执行时设置-用户-I DS _ I S G I D 执行时设置-组-I DS _ I S V T X 保存正文S _ I R W X

11、 U 用户(所有者)读、写和执行S _ I R U S R 用户(所有者)读S _ I W U S R 用户(所有者)写S _ I X U S R 用户(所有者)执行S _ I R W X G 组读、写和执行S _ I R G R P 组读S _ I W G R P 组写S _ I X G R P 组执行S _ I R W X O 其他读、写和执行S _ I R O T H 其他读S _ I W O T H 其他写S _ I X O T H 其他执行练习:ls命令的简单实现(注意与实际的ls命令的区别!)实验:每隔1分钟检查当前目录中文件大小超过1M的文件,并显示提示信息!system(“”)st_size 1m=1024k 1k=1024bytes 1024*1024dd if=/dev/zero of=/tmp/temfile bs=100k count=10

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁