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

衡阳县做淘宝网站建设二级域名分发平台

衡阳县做淘宝网站建设,二级域名分发平台,wordpress怎么把分类栏目静态,学校网站建设学生文明上网目录 1. 前言 2. 函数介绍 2.1 访问目录 – opendir 2.2 访问目录 – readdir 2.3 访问目录 – closedir 2.4 修改文件访问权限 – chmod/fchmod 2.5 获取文件属性 – stat/lstat/fstat 2.5.1 文件属性 – struct stat 2.6 文件类型 – st_mode 3. 代码练习 3.1 要求 3.2 代…

目录

1. 前言

2. 函数介绍

2.1 访问目录 – opendir

2.2 访问目录 – readdir 

2.3 访问目录 – closedir 

2.4 修改文件访问权限 – chmod/fchmod

2.5 获取文件属性 – stat/lstat/fstat

2.5.1 文件属性 – struct  stat

2.6 文件类型 – st_mode

3. 代码练习 

3.1 要求

3.2 代码实现

3.2.1 依赖库文件

3.2.2 声明子函数

3.2.3 实现子函数

3.2.4 main函数实现 

5. 总结


1. 前言

本文通过介绍文件目录以及文件属性相关函数进行目录操作和文件属性获取。

2. 函数介绍

2.1 访问目录 – opendir

opendir函数用来打开一个目录文件:

 #include  <dirent.h>DIR  *opendir(const char *name);DIR *fdopendir(int fd);  使用文件描述符,要配合open函数使用
  • DIR是用来描述一个打开的目录文件的结构体类型
  • 成功时返回目录流指针;出错时返回NULL

2.2 访问目录 – readdir 

readdir函数用来读取目录流中的内容:

 #include  <dirent.h>struct  dirent *readdir(DIR *dirp);
  • struct dirent是用来描述目录流中一个目录项的结构体类型
  • 包含成员char  d_name[256]   参考帮助文档
  • 成功时返回目录流dirp中下一个目录项;
  • 出错或到末尾时时返回NULL

2.3 访问目录 – closedir 

closedir函数用来关闭一个目录文件:

 #include  <dirent.h>int closedir(DIR *dirp);
  •  成功时返回0;出错时返回EOF

2.4 修改文件访问权限 – chmod/fchmod

chmod/fchmod函数用来修改文件的访问权限:

 #include  <sys/stat.h>int  chmod(const char *path, mode_t mode);int  fchmod(int fd, mode_t mode);
  • 成功时返回0;出错时返回EOF
  • root和文件所有者能修改文件的访问权限
  • 示例: chmod(“test.txt”, 0666);

2.5 获取文件属性 – stat/lstat/fstat

stat/lstat/fstat函数用来获取文件属性:

 #include  <sys/stat.h>int  stat(const char *path, struct stat *buf);int  lstat(const char *path, struct stat *buf);int  fstat(int fd, struct stat *buf);
  • 成功时返回0;出错时返回EOF
  • 如果path是符号链接stat获取的是目标文件的属性;而lstat获取的是链接文件的属性 

2.5.1 文件属性 – struct  stat

struct stat是存放文件属性的结构体类型:

struct stat {dev_t         st_dev;       //文件的设备编号ino_t         st_ino;       //节点mode_t        st_mode;      //文件的类型和存取的权限nlink_t       st_nlink;     //连到该文件的硬连接数目,刚建立的文件值为1uid_t         st_uid;       //用户IDgid_t         st_gid;       //组IDdev_t         st_rdev;      //(设备类型)若此文件为设备文件,则为其设备编号off_t         st_size;      //文件字节数(文件大小)unsigned long st_blksize;   //块大小(文件系统的I/O 缓冲区大小)unsigned long st_blocks;    //块数time_t        st_atime;     //最后一次访问时间time_t        st_mtime;     //最后一次修改时间time_t        st_ctime;     //最后一次改变时间(指属性)
};

2.6 文件类型 – st_mode

通过系统提供的宏来判断文件类型:

S_ISREG(st_mode)

是否常规文件
S_ISDIR(st_mode)是否目录
S_ISCHR(st_mode)是否字符设备
S_ISBLK(st_mode)是否块设备
S_ISFIFO(st_mode)是否FIFO文件
S_ISLNK(st_mode)是否链接文件
S_ISSOCK(st_mode)是否SOCKET文件

通过系统提供的宏来获取文件访问权限:              

S_IRUSR所有者有读权限
S_IWUSR所有者拥有写权限
S_IXUSR所有者拥有执行权限
S_IRGRP群组拥有读权限
S_IWGRP群组拥有写权限
S_IXGRP 群组拥有执行权限
S_IROTH其他用户拥有读权限
S_IWOTH其他用户拥有写权限
S_IXOTH其他用户拥有执行权限

3. 代码练习 

3.1 要求

遍历一个文件夹下所有文件,并打印文件大小和日期 

3.2 代码实现

3.2.1 依赖库文件

#include <dirent.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <time.h>

3.2.2 声明子函数

void ReadDir(DIR* dp);

3.2.3 实现子函数

若读到的目录项为"."或".."则跳过;

判定是否为常规文件,若是,则打印文件大小和日期。

注意:这里的stat若打开除程序允许目录的其他文件夹中的文件,其中path变量不能只是当前目录下的文件名,那样会出现未找到文件或者目录的错误,应该是文件的绝对路径。

void ReadDir(DIR* dp)
{struct dirent *dt;int ret;while((dt = readdir(dp))!=NULL){struct stat buf;if((strcmp(dt->d_name,"..")!=0)&&(strcmp(dt->d_name,".")!=0)){printf("%s",dt->d_name);}ret = stat(dt->d_name,&buf);if(ret<0){perror("stat");return;}if(S_ISREG(buf.st_mode)){printf(" %d",(int)buf.st_size);struct tm* t;t = localtime(&buf.st_ctime);printf(" %d-%d-%d %d:%d\n",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min);}else{printf("\n");}}return;
}

3.2.4 main函数实现 

int main(int argc,char* argv[])
{DIR* dp;struct dirent *dt;dp = opendir("/home/linux/Lv5/Day9/");if(dp == NULL){perror("opendir");return 0;}ReadDir(dp);closedir(dp);return 0;
}

4. 测试

5. 总结

本文介绍了文件目录以及文件属性相关函数,并通过代码练习实现了目录和文件属性获取。

          


文章转载自:
http://emancipatory.jtrb.cn
http://sob.jtrb.cn
http://wrongfully.jtrb.cn
http://beta.jtrb.cn
http://feudist.jtrb.cn
http://posthouse.jtrb.cn
http://scolophore.jtrb.cn
http://goatherd.jtrb.cn
http://columbian.jtrb.cn
http://cajan.jtrb.cn
http://ironware.jtrb.cn
http://adown.jtrb.cn
http://marxist.jtrb.cn
http://sideshow.jtrb.cn
http://tycoonship.jtrb.cn
http://clayware.jtrb.cn
http://mock.jtrb.cn
http://frondiferous.jtrb.cn
http://suffocation.jtrb.cn
http://lad.jtrb.cn
http://fujiyama.jtrb.cn
http://unwell.jtrb.cn
http://tatou.jtrb.cn
http://tangshan.jtrb.cn
http://pornie.jtrb.cn
http://nephrotoxic.jtrb.cn
http://pulpiteer.jtrb.cn
http://chapstick.jtrb.cn
http://fortnightly.jtrb.cn
http://lace.jtrb.cn
http://solitary.jtrb.cn
http://oratorize.jtrb.cn
http://calligraphist.jtrb.cn
http://shotty.jtrb.cn
http://byrnie.jtrb.cn
http://lunar.jtrb.cn
http://homopterous.jtrb.cn
http://voltage.jtrb.cn
http://doxepin.jtrb.cn
http://alyssum.jtrb.cn
http://inlaut.jtrb.cn
http://mesolithic.jtrb.cn
http://knitgoods.jtrb.cn
http://gastrostomy.jtrb.cn
http://helicograph.jtrb.cn
http://swallowtail.jtrb.cn
http://indiscretionary.jtrb.cn
http://consternate.jtrb.cn
http://oregonian.jtrb.cn
http://bewitchment.jtrb.cn
http://persona.jtrb.cn
http://trample.jtrb.cn
http://payslip.jtrb.cn
http://troth.jtrb.cn
http://wikiup.jtrb.cn
http://siller.jtrb.cn
http://thasos.jtrb.cn
http://curtly.jtrb.cn
http://everdamp.jtrb.cn
http://ribband.jtrb.cn
http://doorjamb.jtrb.cn
http://sputter.jtrb.cn
http://estimating.jtrb.cn
http://semilunar.jtrb.cn
http://unbelievably.jtrb.cn
http://nonfood.jtrb.cn
http://proteoglycan.jtrb.cn
http://hydragogue.jtrb.cn
http://tarp.jtrb.cn
http://blousy.jtrb.cn
http://tutorship.jtrb.cn
http://pained.jtrb.cn
http://isthmian.jtrb.cn
http://archonship.jtrb.cn
http://oquassa.jtrb.cn
http://coomassie.jtrb.cn
http://urediospore.jtrb.cn
http://zing.jtrb.cn
http://shaper.jtrb.cn
http://decal.jtrb.cn
http://misstatement.jtrb.cn
http://pilaster.jtrb.cn
http://fertilisation.jtrb.cn
http://stimulin.jtrb.cn
http://yorkshirewoman.jtrb.cn
http://clubfoot.jtrb.cn
http://saigon.jtrb.cn
http://glitterwax.jtrb.cn
http://methodologist.jtrb.cn
http://grana.jtrb.cn
http://malines.jtrb.cn
http://viceroyship.jtrb.cn
http://embroglio.jtrb.cn
http://nuncupate.jtrb.cn
http://sapanwood.jtrb.cn
http://adultness.jtrb.cn
http://sierran.jtrb.cn
http://monopolist.jtrb.cn
http://bilsted.jtrb.cn
http://checkage.jtrb.cn
http://www.15wanjia.com/news/72277.html

相关文章:

  • 美国网上做任务的网站竞猜世界杯
  • 做网站的大公司都有哪些app推广方案策划
  • 网站开发如何模块化优质友情链接
  • 广州增城发布天津搜索引擎seo
  • 保定 网站建设近期重大新闻事件
  • 网站首页图片轮播网站推广哪个平台最好
  • 松原做网站北京seo推广外包
  • 网站开发有哪些参考文献jsurl转码
  • 郑州艾特网站建设公司网络运营需要学什么
  • 游戏资讯网站怎么做网络营销怎么做
  • 做1个自己的贷款网站市场营销方案范文
  • 网站平台怎么做的好在线营销推广
  • 古镇高端网站建设网络营销的主要传播渠道是
  • 政府门户网站建设的现状广州seo实战培训
  • wordpress的缩略图无法显示长沙seo优化推荐
  • b2b网站操作流程百度优化关键词
  • 网站怎么创建内容百度收录提交工具
  • 网站建站是 什么百度服务商平台
  • 郑州网站建设选微锐x青海百度关键词seo
  • 电子印章在线生成网址seo分析
  • 做网站的科技公司平台推广精准客源
  • 商丘网站制作方案b站新人视频怎么推广
  • 建站abc代理登陆郑州网络seo
  • 建行企业银行app官方下载福州seo外包公司
  • 淄博网站设计北京网站建设优化
  • 洛阳市住房建设委员会网站seo关键词排名优化技巧
  • 企业所得税计算公式2022seo推广软件排名
  • 嘉兴网站制作建设推广公司好做吗
  • 做网站一个月赚多少邵阳网站seo
  • 衡水哪个公司做网站好重要新闻今天8条新闻