国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

衡陽縣做淘寶網(wǎng)站建設(shè)內(nèi)存優(yōu)化大師

衡陽縣做淘寶網(wǎng)站建設(shè),內(nèi)存優(yōu)化大師,網(wǎng)站建設(shè)與優(yōu)化及覆蓋率方案,adobe建網(wǎng)站目錄 1. 前言 2. 函數(shù)介紹 2.1 訪問目錄 – opendir 2.2 訪問目錄 – readdir 2.3 訪問目錄 – closedir 2.4 修改文件訪問權(quán)限 – chmod/fchmod 2.5 獲取文件屬性 – stat/lstat/fstat 2.5.1 文件屬性 – struct stat 2.6 文件類型 – st_mode 3. 代碼練習(xí) 3.1 要求 3.2 代…

目錄

1. 前言

2. 函數(shù)介紹

2.1?訪問目錄 – opendir

2.2?訪問目錄 – readdir?

2.3?訪問目錄 – closedir?

2.4?修改文件訪問權(quán)限 – chmod/fchmod

2.5?獲取文件屬性 – stat/lstat/fstat

2.5.1?文件屬性 – struct? stat

2.6?文件類型 – st_mode

3. 代碼練習(xí)?

3.1 要求

3.2 代碼實(shí)現(xiàn)

3.2.1 依賴庫文件

3.2.2 聲明子函數(shù)

3.2.3 實(shí)現(xiàn)子函數(shù)

3.2.4 main函數(shù)實(shí)現(xiàn)?

5. 總結(jié)


1. 前言

本文通過介紹文件目錄以及文件屬性相關(guān)函數(shù)進(jìn)行目錄操作和文件屬性獲取。

2. 函數(shù)介紹

2.1?訪問目錄 – opendir

opendir函數(shù)用來打開一個目錄文件:

?#include? <dirent.h>DIR? *opendir(const char *name);DIR *fdopendir(int fd);? 使用文件描述符,要配合open函數(shù)使用
  • DIR是用來描述一個打開的目錄文件的結(jié)構(gòu)體類型
  • 成功時返回目錄流指針;出錯時返回NULL

2.2?訪問目錄 – readdir?

readdir函數(shù)用來讀取目錄流中的內(nèi)容:

?#include? <dirent.h>struct? dirent *readdir(DIR *dirp);
  • struct dirent是用來描述目錄流中一個目錄項(xiàng)的結(jié)構(gòu)體類型
  • 包含成員char? d_name[256]?? 參考幫助文檔
  • 成功時返回目錄流dirp中下一個目錄項(xiàng);
  • 出錯或到末尾時時返回NULL

2.3?訪問目錄 – closedir?

closedir函數(shù)用來關(guān)閉一個目錄文件:

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

2.4?修改文件訪問權(quán)限 – chmod/fchmod

chmod/fchmod函數(shù)用來修改文件的訪問權(quán)限:

?#include? <sys/stat.h>int? chmod(const char *path, mode_t mode);int? fchmod(int fd, mode_t mode);
  • 成功時返回0;出錯時返回EOF
  • root和文件所有者能修改文件的訪問權(quán)限
  • 示例: chmod(“test.txt”, 0666);

2.5?獲取文件屬性 – stat/lstat/fstat

stat/lstat/fstat函數(shù)用來獲取文件屬性:

?#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獲取的是目標(biāo)文件的屬性;而lstat獲取的是鏈接文件的屬性?

2.5.1?文件屬性 – struct? stat

struct stat是存放文件屬性的結(jié)構(gòu)體類型:

struct stat {dev_t         st_dev;       //文件的設(shè)備編號ino_t         st_ino;       //節(jié)點(diǎn)mode_t        st_mode;      //文件的類型和存取的權(quán)限nlink_t       st_nlink;     //連到該文件的硬連接數(shù)目,剛建立的文件值為1uid_t         st_uid;       //用戶IDgid_t         st_gid;       //組IDdev_t         st_rdev;      //(設(shè)備類型)若此文件為設(shè)備文件,則為其設(shè)備編號off_t         st_size;      //文件字節(jié)數(shù)(文件大小)unsigned long st_blksize;   //塊大小(文件系統(tǒng)的I/O 緩沖區(qū)大小)unsigned long st_blocks;    //塊數(shù)time_t        st_atime;     //最后一次訪問時間time_t        st_mtime;     //最后一次修改時間time_t        st_ctime;     //最后一次改變時間(指屬性)
};

2.6?文件類型 – st_mode

通過系統(tǒng)提供的宏來判斷文件類型:

S_ISREG(st_mode)

是否常規(guī)文件
S_ISDIR(st_mode)是否目錄
S_ISCHR(st_mode)是否字符設(shè)備
S_ISBLK(st_mode)是否塊設(shè)備
S_ISFIFO(st_mode)是否FIFO文件
S_ISLNK(st_mode)是否鏈接文件
S_ISSOCK(st_mode)是否SOCKET文件

通過系統(tǒng)提供的宏來獲取文件訪問權(quán)限:??????????????

S_IRUSR所有者有讀權(quán)限
S_IWUSR所有者擁有寫權(quán)限
S_IXUSR所有者擁有執(zhí)行權(quán)限
S_IRGRP群組擁有讀權(quán)限
S_IWGRP群組擁有寫權(quán)限
S_IXGRP?群組擁有執(zhí)行權(quán)限
S_IROTH其他用戶擁有讀權(quán)限
S_IWOTH其他用戶擁有寫權(quán)限
S_IXOTH其他用戶擁有執(zhí)行權(quán)限

3. 代碼練習(xí)?

3.1 要求

遍歷一個文件夾下所有文件,并打印文件大小和日期?

3.2 代碼實(shí)現(xiàn)

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 聲明子函數(shù)

void ReadDir(DIR* dp);

3.2.3 實(shí)現(xiàn)子函數(shù)

若讀到的目錄項(xiàng)為"."或".."則跳過;

判定是否為常規(guī)文件,若是,則打印文件大小和日期。

注意:這里的stat若打開除程序允許目錄的其他文件夾中的文件,其中path變量不能只是當(dāng)前目錄下的文件名,那樣會出現(xiàn)未找到文件或者目錄的錯誤,應(yīng)該是文件的絕對路徑。

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函數(shù)實(shí)現(xiàn)?

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. 總結(jié)

本文介紹了文件目錄以及文件屬性相關(guān)函數(shù),并通過代碼練習(xí)實(shí)現(xiàn)了目錄和文件屬性獲取。

????? ????

http://aloenet.com.cn/news/37010.html

相關(guān)文章:

  • jsp做網(wǎng)站圖片怎么存儲談?wù)勀銓W(wǎng)絡(luò)營銷的認(rèn)識
  • 深圳定制建站鄭州seo多少錢
  • 做網(wǎng)站 分辨率應(yīng)該是多少無錫網(wǎng)站制作優(yōu)化
  • 哪個網(wǎng)站做的最好百度競價ocpc投放策略
  • 新聞網(wǎng)站抓取做輿情監(jiān)測河北網(wǎng)絡(luò)推廣技術(shù)
  • 一個網(wǎng)絡(luò)空間做兩個網(wǎng)站楚雄今日頭條新聞
  • 徐州自助建站系統(tǒng)google框架三件套
  • 如何做網(wǎng)站域名解析seo推廣軟件品牌
  • 做外鏈網(wǎng)站有哪些廣州seo服務(wù)
  • 網(wǎng)站如何做se外貿(mào)推廣網(wǎng)站
  • 網(wǎng)站建設(shè)期末考試答案跨境電商培訓(xùn)機(jī)構(gòu)哪個靠譜
  • 地方網(wǎng)站需要什么手續(xù)成免費(fèi)crm軟件有哪些優(yōu)點(diǎn)
  • 中山石岐網(wǎng)站建設(shè)重慶seo建站
  • 廊坊網(wǎng)站建設(shè)策劃經(jīng)典軟文廣告案例
  • 網(wǎng)站開發(fā)翻譯插件怎么推廣自己的微信
  • 網(wǎng)站建設(shè)服務(wù)內(nèi)容今天濟(jì)南剛剛發(fā)生的新聞
  • 公司怎么制作網(wǎng)站免費(fèi)發(fā)帖推廣網(wǎng)站
  • 吉林省建設(shè)廳網(wǎng)站首頁域名??烤W(wǎng)頁推廣大全
  • 網(wǎng)站功能設(shè)計(jì)的內(nèi)容個人怎么注冊自己的網(wǎng)站
  • 無貨源電商平臺有哪些廈門站長優(yōu)化工具
  • 廣告?zhèn)髅焦揪W(wǎng)站網(wǎng)站推廣策劃報(bào)告
  • html5網(wǎng)站開發(fā)的源碼網(wǎng)絡(luò)顧問
  • 西藏建設(shè)廳網(wǎng)站首頁seo科技網(wǎng)
  • 做視頻網(wǎng)站虛擬主機(jī)怎么選廣告聯(lián)盟接廣告
  • wordpress 采集圖片seo排名點(diǎn)擊首頁
  • 怎么用服務(wù)器搭建網(wǎng)站推廣之家app下載
  • 公司名稱注冊查詢系統(tǒng)seo營銷工具
  • wordpress漂亮的主題網(wǎng)站seo優(yōu)化有哪些方面
  • 商丘做網(wǎng)站sqlongliqi市場營銷四大基本策略
  • linux如何架設(shè)網(wǎng)站貴陽網(wǎng)絡(luò)推廣排名