程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話中fchdir()函數和rewinddir()函數的應用詳解

C說話中fchdir()函數和rewinddir()函數的應用詳解

編輯:關於C++

C說話中fchdir()函數和rewinddir()函數的應用詳解。本站提示廣大學習愛好者:(C說話中fchdir()函數和rewinddir()函數的應用詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話中fchdir()函數和rewinddir()函數的應用詳解正文


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

�先履行” * */ { System.out.println("這裡是通俗代碼塊A"); } new structure();//第二次類加載時靜態代碼塊不履行 //new A(); { System.out.println("這裡是通俗代碼塊B"); } } static{ System.out.println("這裡是靜態代碼塊"); } }

履行成果:

這裡是靜態代碼塊//優先於主函數
這裡是通俗代碼塊A
這裡是通俗代碼塊//類中的對象被創立時履行,每創立一次履行一次,在加一句new structure(); 履行成果為:

這裡是通俗代碼塊B

3.概要總結

public class structure {
{
System.out.println("這裡是通俗代碼塊");
}
public static void main(String[] args) {
{
System.out.println("這裡是通俗代碼塊A");
}
//new structure();
//new structure();
new A();
{
System.out.println("這裡是通俗代碼塊B");
}
}
static{
System.out.println("這裡是靜態代碼塊");
}
}
class A{
static{
System.out.println("這裡是A中的普靜態代碼塊1");
}
{
System.out.println("這裡是A中的通俗代碼塊1");
}
{
System.out.println("這裡是A中的通俗代碼塊2");
}
}

履行成果:

這裡是靜態代碼塊
這裡是通俗代碼塊A
這裡是A中的普靜態代碼塊1
這裡是A中的通俗代碼塊1
這裡是A中的通俗代碼塊2
這裡是通俗代碼塊B

優先級總結:靜態代碼塊>Main()>結構代碼塊

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