C语言中fchdir()函数和rewinddir()函数的使用详解
C语言fchdir()函数:改变当前工作目录
头文件:
#include<unistd.h>
定义函数:
intfchdir(intfd);
函数说明:fchdir()用来将当前的工作目录改变成以参数fd所指的文件描述词。
返回值:执行成功则返回0,失败返回-1,errno为错误代码.
范例
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
main()
{
intfd;
fd=open("/tmp",O_RDONLY);
fchdir(fd);
printf("currentworkingdirectory:%s\n",getcwd(NULL,NULL));
close(fd);
}
执行:
currentworkingdirectory:/tmp
C语言rewinddir()函数:重设读取目录的位置为开头位置
头文件:
#include<sys/types.h>#include<dirent.h>
定义函数:
voidrewinddir(DIR*dir);
函数说明:rewinddir()用来设置参数dir目录流目前的读取位置为原来开头的读取位置.
错误代码:EBADFdir为无效的目录流。
范例
#include<sys/types.h>
#include<dirent.h>
#include<unistd.h>
main()
{
DIR*dir;
structdirent*ptr;
dir=opendir("/etc/rc.d");
while((ptr=readdir(dir))!=NULL)
{
printf("d_name:%s\n",ptr->d_name);
}
rewinddir(dir);
printf("readdiragain!\n");
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 readdiragain! 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