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

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年2月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

常用鏈接

留言簿(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>
            激情小说亚洲一区| 国产精品久久久久久超碰| 亚洲一区二区不卡免费| 亚洲第一精品影视| 久久久999精品免费| 艳妇臀荡乳欲伦亚洲一区| 精品动漫3d一区二区三区免费版 | 久久婷婷久久| 亚洲一区久久久| 亚洲精品视频免费观看| 女同一区二区| 久久久亚洲国产天美传媒修理工| 亚洲夜间福利| 99精品欧美一区二区蜜桃免费| 在线电影国产精品| 国产日韩欧美自拍| 国产精品久久777777毛茸茸| 欧美日韩p片| 欧美精品久久久久久久免费观看| 久久理论片午夜琪琪电影网| 午夜在线视频观看日韩17c| 中文网丁香综合网| 99这里只有久久精品视频| 亚洲国内自拍| 亚洲欧洲在线一区| 欧美激情一区二区三区蜜桃视频| 乱人伦精品视频在线观看| 久久精品一区中文字幕| 欧美在线中文字幕| 欧美在线首页| 久久精品国产清自在天天线| 欧美亚洲三区| 久久成人亚洲| 久久手机精品视频| 久久综合九色综合欧美就去吻| 久久久午夜电影| 久久亚洲精品网站| 老司机67194精品线观看| 另类专区欧美制服同性| 美女主播精品视频一二三四| 美女啪啪无遮挡免费久久网站| 玖玖精品视频| 欧美风情在线| 亚洲黄色成人| 夜夜爽www精品| 亚洲一区二区四区| 欧美一区亚洲二区| 久久综合久久综合这里只有精品| 欧美mv日韩mv国产网站| 欧美理论电影网| 国产精品久久久久久五月尺| 国产精品日韩精品欧美在线| 国产欧美精品xxxx另类| 好看的日韩视频| 亚洲精品国产欧美| 亚洲一区二区在线免费观看视频| 午夜在线播放视频欧美| 久久久久久久久一区二区| 欧美1区免费| 日韩亚洲欧美在线观看| 亚洲女爱视频在线| 久久亚洲精品伦理| 欧美日韩精品在线观看| 国产精品亚洲综合久久| 激情综合色综合久久| 91久久精品美女高潮| 亚洲一级电影| 久久一区二区三区四区五区| 亚洲国产一成人久久精品| 中文在线资源观看网站视频免费不卡| 香蕉久久国产| 欧美黄色精品| 国产日韩欧美一区| 亚洲精品一区在线观看香蕉| 午夜国产精品影院在线观看| 美女网站在线免费欧美精品| 日韩视频国产视频| 久久精品视频免费| 欧美日韩三级一区二区| 激情久久久久久| 一区二区欧美精品| 久久人人97超碰精品888| 亚洲裸体俱乐部裸体舞表演av| 香蕉精品999视频一区二区 | 亚洲综合日韩中文字幕v在线| 久久久91精品国产一区二区精品| 最新中文字幕一区二区三区| 午夜久久一区| 欧美日韩第一页| 在线精品视频免费观看| 亚洲欧美日韩在线不卡| 欧美激情精品久久久久久久变态| 亚洲一区二区在线免费观看| 欧美成人综合网站| 国产一二精品视频| 亚洲一线二线三线久久久| 欧美成人激情视频| 欧美一级电影久久| 欧美午夜不卡在线观看免费| 亚洲国产高清aⅴ视频| 午夜在线一区二区| 日韩视频三区| 欧美不卡视频一区| 在线观看视频免费一区二区三区| 亚洲欧美另类中文字幕| 亚洲福利视频网站| 久久精品男女| 国产性天天综合网| 亚洲欧美综合国产精品一区| 亚洲精品老司机| 欧美成人乱码一区二区三区| 国内精品久久久久久| 新片速递亚洲合集欧美合集| 日韩视频专区| 欧美精品精品一区| 亚洲精品视频在线观看网站 | 亚洲大片av| 久久久精品久久久久| 亚洲午夜一区二区| 国产精品v日韩精品v欧美精品网站| 亚洲黄色在线观看| 欧美不卡在线视频| 麻豆视频一区二区| 亚洲国产精品成人精品| 麻豆久久精品| 久久五月天婷婷| 亚洲大胆美女视频| 女女同性女同一区二区三区91| 亚洲国产精品成人久久综合一区| 久久久精品日韩欧美| 国产精品国产三级国产a| 一区二区高清视频| 欧美成人首页| 欧美国产日韩在线观看| 亚洲一区免费看| 欧美一进一出视频| 亚洲欧洲偷拍精品| 亚洲午夜精品久久久久久浪潮| 国产亚洲一区二区三区| 欧美福利电影网| 国产精品美女久久久浪潮软件 | 久久香蕉国产线看观看av| 欧美+亚洲+精品+三区| 亚洲影院污污.| 久久久午夜视频| 亚洲一区二区三区成人在线视频精品 | 久久久伊人欧美| 宅男噜噜噜66一区二区| 欧美在线观看视频| 一本久久a久久免费精品不卡| 亚洲欧美日韩综合一区| 亚洲欧洲日本在线| 性欧美18~19sex高清播放| 亚洲美女一区| 久久精品国产91精品亚洲| 一区二区久久| 久久影院午夜论| 欧美一区2区三区4区公司二百| 欧美xart系列高清| 久久精品视频在线看| 欧美日韩日日夜夜| 欧美韩日一区二区三区| 国产精品影音先锋| 亚洲精品网址在线观看| 影音先锋久久| 午夜精品久久久99热福利| 日韩天堂av| 久久综合九色99| 久久久久久婷| 国产精品乱人伦中文| 亚洲人成绝费网站色www| 精品99一区二区三区| 亚洲一区二区三区久久| 99综合在线| 可以看av的网站久久看| 久久精彩免费视频| 国产精品久久久久婷婷| 最新高清无码专区| 亚洲缚视频在线观看| 欧美在线观看视频一区二区三区| 亚洲免费小视频| 欧美日本一区二区三区| 欧美国产日韩一区| 亚洲成色999久久网站| 欧美在线观看视频| 欧美与黑人午夜性猛交久久久| 欧美视频1区| 亚洲精品免费看| 日韩天堂在线视频| 欧美大片免费观看| 欧美大片在线看| 1024成人网色www| 久久九九全国免费精品观看| 久久国产精品亚洲77777| 国产精品久久久久久久久久久久久久 | 国产综合精品一区| 性久久久久久久久久久久| 欧美在线免费观看| 国产偷国产偷精品高清尤物| 亚洲影视九九影院在线观看|