青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0

LINUX下用C語(yǔ)言歷遍目錄 C語(yǔ)言列出目錄2007-04-06 21:02功能:       Linux下C語(yǔ)言目錄歷遍 (讀取目錄)

作者:       小徐

QQ:          339534039

轉(zhuǎn)載請(qǐng)注明出處

呵呵,LINUX下歷遍目錄的方法一般是這樣的

打開(kāi)目錄-》讀取-》關(guān)閉目錄

相關(guān)函數(shù)是

opendir -> readdir -> closedir

 

#include <dirent.h>

DIR *opendir(const char *dirname);

 

#include <dirent.h>

struct dirent *readdir(DIR *dirp);

 

#include <dirent.h>

int closedir(DIR *dirp);

 

好了,三個(gè)函數(shù)都出來(lái)了呵呵,原型就是上面,給自己解釋一下免得以后我自己忘了呵呵!我以經(jīng)忘過(guò)好幾回了,所以這次放上博客來(lái)

opendir用于打開(kāi)目錄,是類(lèi)似于流的那種方式,返回一個(gè)指向DIR結(jié)構(gòu)體的指針?biāo)膮?shù)*dirname是一個(gè)字符數(shù)組或者字符串常量,

readdir函數(shù)用于讀取目錄,他只有一個(gè)參數(shù),這個(gè)參數(shù)主opendir返回的結(jié)構(gòu)體指針,或者叫句柄更容易理解些吧。這個(gè)函數(shù)也返回一個(gè)結(jié)構(gòu) 體指針 dirent *

dirent的結(jié)構(gòu)如下定義

    struct dirent

    {

        long d_ino;                      /* inode number */

        off_t d_off;                     /* offset to this dirent */

        unsigned short d_reclen;         /* length of this d_name */

        char d_name [NAME_MAX+1];        /* file name (null-terminated) */

    }

結(jié)構(gòu)體中d_ino存放的是該文件的結(jié)點(diǎn)數(shù)目,什么是結(jié)點(diǎn)數(shù)目呢我也說(shuō)不清楚了呵呵,查一下其它資料了

d_off 是文件在目錄中的編移,具體是什么意思我也不是很明白,我很少用到它,其本上就是用到d_name short d_reclen是這個(gè)文件的長(zhǎng)度,需要注意的是這里的長(zhǎng)度并不是指文件大小,因?yàn)榇笮『烷L(zhǎng)度是2回事了,你可以用lseek將文件長(zhǎng)度移得很長(zhǎng),但大小 其實(shí)還是那么大.最后一個(gè)元素就是我們要的了,文件名稱(chēng)!

寫(xiě)了一個(gè)實(shí)例:

 

/**

* 功能:       Linux下C語(yǔ)言目錄歷遍 (讀取目錄)

* 作者:       小徐

* 郵箱:      xjtdy888@163.com

* QQ:          339534039

* 轉(zhuǎn)載請(qǐng)注明出處

*/

#include <stdio.h>

#include <stdlib.h>

#include <sys/types.h>

#include <unistd.h>

#include <dirent.h>

 

void print_usage(void);

 

void print_usage(void)

{

printf("Usage: test dirname\n");

}

 

int main(int argc,char *argv[])

{

DIR * dp;

struct dirent *filename;

 

if (argc < 2)

{

       print_usage();

       exit(1);

}

 

dp = opendir(argv[1]);

if (!dp)

{

       fprintf(stderr,"open directory error\n");

       return 0;

}

while (filename=readdir(dp))

{

       printf("filename:%-10s\td_info:%ld\t d_reclen:%us\n",

         filename->d_name,filename->d_ino,filename->d_reclen);

}

closedir(dp);

return 0;

}

 

將上面代碼保存為readdir.c執(zhí)行下面的命令進(jìn)行編譯測(cè)試

[root@phpos ~]# gcc readdir.c

[root@phpos ~]# ./a.out

Usage: test dirname

[root@phpos ~]# ./a.out /etc/samba/

filename:lmhosts             d_info:49296          d_reclen:24s

filename:smb.conf            d_info:49825          d_reclen:24s

filename:smbpasswd           d_info:49402          d_reclen:24s

filename:..                  d_info:47906          d_reclen:16s

filename:secrets.tdb         d_info:49812          d_reclen:24s

filename:.                   d_info:49295          d_reclen:16s

filename:smbusers            d_info:49377          d_reclen:24s

[root@phpos ~]# ./a.out /var/

filename:preserve            d_info:31971          d_reclen:24s

filename:lock                d_info:31966          d_reclen:16s

filename:yp                  d_info:31976          d_reclen:16s

filename:empty               d_info:31962          d_reclen:24s

filename:run                 d_info:31972          d_reclen:16s

filename:lib                 d_info:31939          d_reclen:16s

filename:nis                 d_info:31969          d_reclen:16s

filename:local               d_info:31965          d_reclen:24s

filename:spool               d_info:31973          d_reclen:24s

filename:tmp                 d_info:31941          d_reclen:16s

filename:opt                 d_info:31970          d_reclen:16s

filename:log                 d_info:31959          d_reclen:16s

filename:crash               d_info:31997          d_reclen:24s

filename:..                  d_info:2              d_reclen:16s

filename:account             d_info:32037          d_reclen:24s

filename:mail                d_info:31968          d_reclen:16s

filename:cache               d_info:31960          d_reclen:24s

filename:db                  d_info:31961          d_reclen:16s

filename:.                   d_info:31938          d_reclen:16s

[root@phpos ~]#

 

轉(zhuǎn)載地址:http://hi.baidu.com/phps/blog/item/92120fd1645fc9d2562c840a.html


posted on 2010-04-14 23:23 chatler 閱讀(419) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): Linux_Coding
<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

常用鏈接

留言簿(10)

隨筆分類(lèi)(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺(jué)這個(gè)博客還是不錯(cuò),雖然做的東西和我不大相關(guān),覺(jué)得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区二区三区高清 | 午夜国产精品视频| av成人毛片| 99热精品在线| 中文无字幕一区二区三区| 一区二区欧美亚洲| 亚洲欧美国产一区二区三区| 亚洲一区二区三区精品动漫| 亚洲欧美视频在线观看| 欧美一区二区在线视频| 久久国产精品久久久久久电车| 久久精品91久久久久久再现| 久久久久久噜噜噜久久久精品| 老司机一区二区三区| 欧美大色视频| 亚洲精品视频一区| 一区二区高清| 欧美亚洲免费在线| 久久亚洲国产精品日日av夜夜| 欧美91视频| 欧美视频在线视频| 国产日韩欧美三级| 在线欧美电影| 在线一区免费观看| 久久狠狠婷婷| 亚洲女同在线| 亚洲激情一区| 狂野欧美性猛交xxxx巴西| 亚洲色图自拍| 久久精品日韩| 欧美精品网站| 国产伦精品一区二区三区免费 | 国内精品久久久久久影视8| 在线成人亚洲| 亚洲一区二区三区精品在线| 久久精品最新地址| 亚洲国产三级在线| 亚洲少妇诱惑| 鲁鲁狠狠狠7777一区二区| 欧美日韩在线免费观看| 国内偷自视频区视频综合| 亚洲精品美女在线观看| 午夜免费在线观看精品视频| 欧美va亚洲va香蕉在线| 制服丝袜亚洲播放| 久久综合精品一区| 国产精品入口福利| 亚洲精品免费一区二区三区| 久久国产日韩欧美| 亚洲精选中文字幕| 久久久综合精品| 亚洲日本一区二区| 亚洲精品123区| 亚洲一区二区三区在线视频| 久久综合一区| 国产性做久久久久久| 亚洲美女在线观看| 久久人体大胆视频| 亚洲午夜极品| 欧美激情亚洲综合一区| 国产在线精品成人一区二区三区| 一区二区三区精品视频在线观看| 久久影音先锋| 午夜精品久久久久久久99樱桃| 欧美成人免费在线观看| 好吊日精品视频| 午夜精品久久久| 亚洲精品视频啊美女在线直播| 久久久久久噜噜噜久久久精品| 国产精品久久久久久久第一福利 | 一区二区三区四区国产| 美日韩精品免费观看视频| 亚洲欧美日韩国产成人| 欧美日韩ab片| 亚洲精品一区二区网址| 欧美www视频| 欧美中文字幕视频| 国产麻豆精品久久一二三| 亚洲视频狠狠| 亚洲精品乱码久久久久| 欧美va天堂在线| 亚洲国产精品成人综合| 美女黄毛**国产精品啪啪| 欧美一区午夜精品| 国产日产欧美精品| 欧美一区二区成人6969| 亚洲伊人伊色伊影伊综合网 | 最新国产成人在线观看| 麻豆91精品| 亚洲福利专区| 欧美韩日一区二区| 久久这里只有| 在线精品视频一区二区三四| 久久午夜av| 久久久.com| 一区二区三区在线视频免费观看| 久久久欧美一区二区| 久久成人免费视频| 黄网站色欧美视频| 久久在线精品| 久久综合电影一区| 亚洲国产毛片完整版 | 榴莲视频成人在线观看| 亚洲电影激情视频网站| 亚洲大胆人体在线| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲国产精品专区久久| 亚洲国产天堂久久综合网| 欧美激情一区二区三级高清视频| 9色porny自拍视频一区二区| 亚洲精品欧美一区二区三区| 欧美日一区二区在线观看| 午夜精品国产精品大乳美女| 午夜一区在线| 在线观看亚洲| 最新国产の精品合集bt伙计| 欧美日在线观看| 欧美一区日本一区韩国一区| 久久国产精品久久久久久| 亚洲高清一二三区| 亚洲三级免费电影| 国产精品乱码妇女bbbb| 久久久亚洲欧洲日产国码αv| 久久人人爽人人| 一本色道久久99精品综合| 亚洲午夜精品久久久久久浪潮| 国产午夜精品久久| 欧美成人嫩草网站| 欧美日韩一级黄| 久久精品免费| 欧美大片国产精品| 先锋影音网一区二区| 久久精品一级爱片| 一区二区欧美日韩视频| 亚洲欧美综合v| 亚洲三级色网| 亚洲一区二区毛片| 亚洲第一中文字幕| 一本色道久久综合狠狠躁的推荐| 国产视频欧美视频| 亚洲国产精品成人精品| 国产精品一区三区| 欧美高清视频免费观看| 欧美午夜在线观看| 麻豆成人在线播放| 欧美日韩在线亚洲一区蜜芽| 久久久另类综合| 欧美日韩你懂的| 久久综合电影| 国产精品久久久久久久午夜片| 蜜臀99久久精品久久久久久软件| 欧美日韩国产影片| 毛片基地黄久久久久久天堂| 国产精品久久久久免费a∨大胸| 欧美a级大片| 国产欧美一区二区精品性色| 亚洲欧洲三级电影| 国产一区二区看久久| 夜夜嗨av一区二区三区四区| 亚洲福利国产精品| 亚洲女女做受ⅹxx高潮| 日韩一本二本av| 久久久999精品| 小辣椒精品导航| 欧美日韩国产123区| 欧美成人性网| 国产亚洲精品一区二区| 在线一区二区日韩| 亚洲精选在线| 久久一区亚洲| 久久美女性网| 国产伦精品一区二区三区视频黑人| 亚洲精品日韩激情在线电影| 亚洲第一精品夜夜躁人人爽| 欧美一区二区三区四区在线| 亚洲性视频网站| 欧美伦理91i| 亚洲国产成人在线播放| 黄色精品在线看| 欧美亚洲一区| 欧美一区二区三区喷汁尤物| 欧美视频观看一区| 亚洲人精品午夜在线观看| 亚洲国产日韩美| 久久综合99re88久久爱| 久久综合九色欧美综合狠狠| 国产乱理伦片在线观看夜一区| 亚洲视频你懂的| 亚洲与欧洲av电影| 欧美日韩亚洲一区二区三区四区| 亚洲国产精品久久久久婷婷老年 | 久久久久一区| 国产亚洲欧洲| 欧美一区影院| 久久精品日韩| 国产一区在线看| 久久激情网站| 美乳少妇欧美精品| 亚洲第一页自拍| 免费观看日韩av|