C语言中fchdir()函数和rewinddir()函数的使用详解

 更新时间:2015年09月01日 17:39:17   投稿:goldensun  
这篇文章主要介绍了C语言中fchdir()函数和rewinddir()函数的使用详解,是C语言入门学习中的基础知识,需要的朋友可以参考下

C语言fchdir()函数:改变当前工作目录
头文件:

#include <unistd.h>

定义函数:

int fchdir(int fd);

函数说明:fchdir()用来将当前的工作目录改变成以参数fd 所指的文件描述词。

返回值:执行成功则返回 0, 失败返回-1, errno 为错误代码.

范例

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
main()
{
  int fd;
  fd = open("/tmp", O_RDONLY);
  fchdir(fd);
  printf("current working directory : %s \n", getcwd(NULL, NULL));
  close(fd);
}

执行:

current working directory : /tmp

C语言rewinddir()函数:重设读取目录的位置为开头位置
头文件:

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

定义函数:

void rewinddir(DIR *dir);

函数说明:rewinddir()用来设置参数dir 目录流目前的读取位置为原来开头的读取位置.

错误代码:EBADF dir 为无效的目录流。

范例

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

相关文章

  • c++对象内存布局示例详解

    c++对象内存布局示例详解

    C++类的内存布局跟结构体有点像,实际上,类中成员变量的内存布局规则跟结构体是一样的,区别在于函数,虚函数的放置,下面这篇文章主要给大家介绍了关于c++对象内存布局的相关资料,需要的朋友可以参考下
    2021-10-10
  • C++无痛实现日期类的示例代码

    C++无痛实现日期类的示例代码

    凡是要写类必须要提到六大默认成员(六位大爷):构造函数、析构函数、拷贝构造函数、赋值重载函数、取地址重载函数(包括const对象和普通对象);那么这次的日期类又需要伺候哪几位大爷呢?本文就来详细说说
    2022-10-10
  • c/c++ Error: redefinition of 'xxx'的问题及解决方法

    c/c++ Error: redefinition of 'xxx'的问题及解决方法

    两个类/文件同时引用定义ReplyInfo的头文件,会造成头文件中定义重复定义,本文给大家分享c/c++ Error: redefinition of ‘xxx’ 的问题及解决方法,感兴趣的朋友一起看看吧
    2023-08-08
  • Qt自定义图形实现拖拽效果

    Qt自定义图形实现拖拽效果

    这篇文章主要为大家详细介绍了Qt自定义图形实现拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • C语言实现linux网卡检测精简版

    C语言实现linux网卡检测精简版

    这篇文章主要为大家详细介绍了C语言实现linux网卡检测的精简版,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • C语言学生成绩管理系统小设计

    C语言学生成绩管理系统小设计

    这篇文章主要为大家详细介绍了C语言学生成绩管理系统小设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C语言实现链队列

    C语言实现链队列

    这篇文章主要为大家详细介绍了C语言实现链队列,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 算法详解之分支限界法的具体实现

    算法详解之分支限界法的具体实现

    这篇文章主要介绍了算法详解之分支限界法的具体实现,需要的朋友可以参考下
    2014-02-02
  • C语言实现Fibonacci数列递归

    C语言实现Fibonacci数列递归

    这篇文章主要介绍了C语言实现Fibonacci数列递归,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • C++ 中RTTI的使用方法详解

    C++ 中RTTI的使用方法详解

    这篇文章主要介绍了C++ 中RTTI的使用方法详解的相关资料,希望通过本文大家能理解使用RTTI,需要的朋友可以参考下
    2017-09-09

最新评论