程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話編程中對目次停止根本的翻開封閉和讀取操作詳解

C說話編程中對目次停止根本的翻開封閉和讀取操作詳解

編輯:關於C++

C說話編程中對目次停止根本的翻開封閉和讀取操作詳解。本站提示廣大學習愛好者:(C說話編程中對目次停止根本的翻開封閉和讀取操作詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話編程中對目次停止根本的翻開封閉和讀取操作詳解正文


C說話opendir()函數:翻開目次函數
頭文件:

#include <sys/types.h>  #include <dirent.h>

界說函數:

DIR * opendir(const char * name);

函數解釋:opendir()用來翻開參數name 指定的目次, 並前往DIR*形狀的目次流, 和open()相似, 接上去對目次的讀取和搜刮都要應用此前往值.

前往值:勝利則前往DIR* 型態的目次流, 翻開掉敗則前往NULL.

毛病代碼:
1、EACCESS 權限缺乏。
2、EMFILE 已到達過程可同時翻開的文件數下限。
3、ENFILE 已到達體系可同時翻開的文件數下限。
4、ENOTDIR 參數name 非真實的目次。
5、ENOENT 參數name 指定的目次不存在, 或是參數name 為一空字符串。
6、ENOMEM 焦點內存缺乏。

C說話closedir()函數:封閉目次
頭文件:

#include <sys/types.h>  #include <dirent.h>

界說函數:

int closedir(DIR *dir);

函數解釋:closedir()封閉參數dir 所指的目次流。

前往值:封閉勝利則前往0,,掉敗前往-1,,毛病緣由存於errno 中。

毛病代碼:EBADF 參數dir 為有效的目次流。

典范:參考readir()。

C說話readdir()函數:讀取目次函數
頭文件:

 #include <sys/types.h>  #include <dirent.h>

界說函數:

struct dirent * readdir(DIR * dir);

函數解釋:readdir()前往參數dir 目次流的下個目次進入點。構造dirent 界說以下:

struct dirent
{
  ino_t d_ino; //d_ino 此目次進入點的inode
  ff_t d_off; //d_off 目次文件開首至此目次進入點的位移
  signed short int d_reclen; //d_reclen _name 的長度, 不包括NULL 字符
  unsigned char d_type; //d_type d_name 所指的文件類型 d_name 文件名
  har d_name[256];
};

前往值:勝利則前往下個目次進入點. 有毛病產生或讀取到目次文件尾則前往NULL.

附加解釋:EBADF 參數dir 為有效的目次流。

典范

#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>
main()
{
  DIR * dir;
  struct dirent * ptr;
  int i;
  dir = opendir("/etc/rc.d");
  while((ptr = readdir(dir)) != NULL)
  {
    printf("d_name : %s\n", ptr->d_name);
  }
  closedir(dir);
}

履行:

d_name : .
d_name : ..
d_name : init.d
d_name : rc0.d
d_name : rc1.d
d_name : rc2.d
d_name : rc3.d
d_name : rc4.d
d_name : rc5.d
d_name : rc6.d
d_name : rc
d_name : rc.local
d_name : rc.sysinit

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved