腌制的芥菜疙瘩怎么吃:dirent结构 --文件夹相关 - lizzy115的日志 - 网易博客

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 07:41:16

stat(由文件描述词取得文件状态)

相关函数

stat,fstat,chmod,chown,readlink,utime

表头文件

#include
#include

定义函数

int lstat (const char * file_name.struct stat * buf);

函数说明

lstat()与stat()作用完全相同,都是取得参数file_name所指的文件状态,其差别在于,当文件为符号连接时,lstat()会返回该link本身的状态。详细内容请参考stat()。

返回值

执行成功则返回0,失败返回-1,错误代码存于errno。

范例

参考stat()。
 

 

 

 


opendir(打开目录)

相关函数

open,readdir,closedir,rewinddir,seekdir,telldir,scandir

表头文件

#include
#include

定义函数

DIR * opendir(const char * name);

函数说明

opendir()用来打开参数name指定的目录,并返回DIR*形态的目录流,和open()类似,接下来对目录的读取和搜索都要使用此返回值。

返回值

成功则返回DIR* 型态的目录流,打开失败则返回NULL。

错误代码

EACCESS 权限不足
EMFILE 已达到进程可同时打开的文件数上限。
ENFILE 已达到系统可同时打开的文件数上限。
ENOTDIR 参数name非真正的目录
ENOENT 参数name 指定的目录不存在,或是参数name 为一空字符串。
ENOMEM 核心内存不足。
 

 

 


readdir(读取目录)

相关函数

open,opendir,closedir,rewinddir,seekdir,telldir,scandir

表头文件

#include
#include

定义函数

struct dirent * readdir(DIR * dir);

函数说明

readdir()返回参数dir目录流的下个目录进入点。
结构dirent定义如下
struct dirent
{
ino_t d_ino;
ff_t d_off;
signed short int d_reclen;
unsigned char d_type;
har d_name[256];
};
d_ino
此目录进入点的inode
d_off 目录文件开头至此目录进入点的位移

d_reclen _name的长度,不包含NULL字符
d_type d_name 所指的文件类型
d_name 文件名

返回值

成功则返回下个目录进入点。有错误发生或读取到目录文件尾则返回NULL。

附加说明

EBADF参数dir为无效的目录流。

范例

#include
#include
#include
main()
{
DIR * dir;
struct dirent * ptr;
int i;
dir =opendir(“/etc/rc.d”);
while((ptr = readdir(dir))!=NULL)
{
printf(“d_name: %sn”,ptr->d_name);
}
closedir(dir);
}


readlink(取得符号连接所指的文件)

相关函数

stat,lstat,symlink

表头文件

#include

定义函数

int readlink(const char * path ,char * buf,size_t bufsiz);

函数说明

readlink()会将参数path的符号连接内容存到参数buf所指的内存空间,返回的内容不是以NULL作字符串结尾,但会将字符串的字符数返回。若参数bufsiz小于符号连接的内容长度,过长的内容会被截断。

返回值

执行成功则传符号连接所指的文件路径字符串,失败则返回-1,错误代码存于errno。

错误代码

EACCESS 取文件时被拒绝,权限不够
EINVAL 参数bufsiz 为负数
EIO I/O 存取错误。
ELOOP 欲打开的文件有过多符号连接问题。
ENAMETOOLONG 参数path的路径名称太长
ENOENT 参数path所指定的文件不存在
ENOMEM 核心内存不足
ENOTDIR 参数path路径中的目录存在但却非真正的目录。

 

 

 

remove(删除文件)

相关函数 link,rename

表头文件

#include

定义函数

int remove(const char * pathname);

函数说明

remove()会删除参数pathname指定的文件。如果参数pathname为一文件,则调用unlink()处理,若参数pathname为一目录,则调用rmdir()来处理。请参考unlink()与rmdir()。

返回值

成功则返回0,失败则返回-1,错误原因存于errno。

错误代码

EROFS 欲写入的文件存在于只读文件系统内
EFAULT 参数pathname指针超出可存取内存空间
ENAMETOOLONG 参数pathname太长
ENOMEM 核心内存不足
ELOOP 参数pathname有过多符号连接问题
EIO I/O 存取错误。
 

 

 


rename(更改文件名称或位置)

相关函数

link,unlink,symlink

表头文件

#include

定义函数

int rename(const char * oldpath,const char * newpath);

函数说明

rename()会将参数oldpath 所指定的文件名称改为参数newpath所指的文件名称。若newpath所指定的文件已存在,则会被删除。

返回值

执行成功则返回0,失败返回-1,错误原因存于errno

范例

/* 设计一个DOS下的rename指令rename 旧文件名新文件名*/
#include
void main(int argc,char **argv)
{
if(argc<3){
printf(“Usage: %s old_name new_namen”,argv[0]);
return;
}
printf(“%s=>%s”,argc[1],argv[2]);
if(rename(argv[1],argv[2]<0)
printf(“error!n”);
else
printf(“ok!n”);
}
 

 

 


rewinddir(重设读取目录的位置为开头位置)

相关函数

open,opendir,closedir,telldir,seekdir,readdir,scandir

表头文件

#include
#include

定义函数

void rewinddir(DIR *dir);

函数说明

rewinddir()用来设置参数dir 目录流目前的读取位置为原来开头的读取位置。

返回值

 

错误代码

EBADF dir为无效的目录流

范例

#include
#include
#include
main()
{
DIR * dir;
struct dirent *ptr;
dir = opendir(“/etc/rc.d”);
while((ptr = readdir(dir))!=NULL)
{
printf(“d_name :%sn”,ptr->d_name);
}
rewinddir(dir);
printf(“readdir again!n”);
while((ptr = readdir(dir))!=NULL)
{
printf(“d_name: %sn”,ptr->d_name);
}
closedir(dir);
}

dirent结构 --文件夹相关 - lizzy115的日志 - 网易博客 文件夹如何加密码? - 梦中人 的日志 - 网易博客 引用 鼻腔的生理结构 - 心跳的日志 - 网易博客 【表格代码的结构】 - 燕儿的日志 - 网易博客 再谈社会结构 - 榔头榔头的日志 - 网易博客 结构化面试试题 - 面试的日志 - 网易博客 田英章间架结构28法 - 牧羊人的日志 - 网易博客 奇妙人体结构模型 - 莉莉的日志 - 网易博客 奇妙人体结构模型 - 莉莉的日志 - 网易博客 学习资料相关网站 - 吴老师的日志 - 网易博客 学习资料相关网站 - 吴老师的日志 - 网易博客 Linux下目录遍历&结构体dirent - 姜戏◥⊙▲⊙◤郎 - 博客园 【引用】上网防隐私被盗,用文件夹加密超级特工秘密文件夹 - 性感美眉的日志 - 网易博客 引用 建别人进不了删不掉的文件夹 - 阿娇的日志 - 网易博客 QQ应该定时清理的两个文件夹 - 博元的日志 - 网易博客 教你建一个别人打不开的文件夹 - 至死不渝的日志 - 网易博客 教你建一个别人打不开的文件夹 - 至死不渝的日志 - 网易博客 病毒喜欢躲藏于文件夹的详细列表 - 阿豆的日志 - 网易博客 【引用】引用 教你建一个别人打不开的文件夹  - 谈心的日志 - 网易博客 教你建一个别人打不开的文件夹 - 理睬的日志 - 网易博客 教你建一个别人打不开的文件夹 - 至死不渝的日志 - 网易博客 教你建一个别人打不开的文件夹 - 理睬的日志 - 网易博客 文件夹怎么加密码…… - 小鱼儿的日志 - 网易博客 如何给文件夹设置密码 - hwh.1001的日志 - 网易博客