成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基礎(chǔ)學(xué)習(xí)Unix操作系統(tǒng)環(huán)境高級程序設(shè)計

系統(tǒng) 其他OS
Unix操作系統(tǒng)的基礎(chǔ)學(xué)習(xí)對每個人來說都是很重要的,這里,我們要來學(xué)習(xí)Unix操作系統(tǒng)環(huán)境高級程序設(shè)計入門知識,關(guān)于目錄部分的知識。

今天,我們來學(xué)習(xí)Unix操作系統(tǒng)環(huán)境高級程序設(shè)計入門知識,關(guān)于目錄部分的知識。這部分是Unix操作系統(tǒng)環(huán)境高級程序設(shè)計的基礎(chǔ)知識,希望大家可以好好的學(xué)習(xí)。

不管是何種操作系統(tǒng),一提到其中的文件系統(tǒng)首先想到的自然是目錄和文件。在Unix操作系統(tǒng)中一切皆可視為文件,目錄是一種特殊的文件。

在已發(fā)表的《Unix操作系統(tǒng)的入門與基礎(chǔ)》一文中,曾介紹過用戶主目錄、工作目錄以及絕對路徑、相對路徑的概念,我們也已經(jīng)知道了使用pwd命令可以獲得當(dāng)前工作目錄的絕對路徑,那么如何在程序中實現(xiàn)類似于pwd命令的功能呢?這里需要用到getcwd()函數(shù),它的定義是:
   
 

  1. #include <unistd.h> 
  2. char* getcwd(char* buf, size_t size);  //成功返回buf,失敗返回NULL   

   
此函數(shù)中的***個參數(shù)buf數(shù)組用于存放當(dāng)前工作目錄路徑名的字符串,size是指這個buf數(shù)組最多能裝多少數(shù)據(jù),而函數(shù)返回值與放入buf中的內(nèi)容是相同的。要注意的是,Unix操作系統(tǒng)該緩存必須有足夠的長度以容納絕對路徑名再加上一個“/0”終止字符,否則將會返回出錯。

對于Unix操作系統(tǒng)目錄的操作,最常見的就是打開目錄、讀取目錄信息、關(guān)閉目錄,與之對應(yīng)的函數(shù)分別是:

  1. #include <sys/types.h> 
  2. #include <dirent.h> 
  3. DIR* opendir(const char* dirname);    //成功時返回指針,失敗返回NULL  
  4. struct dirent* readdir(DIR* dirp);         //成功時返回指針,失敗返回NULL  
  5. int closedir(DIR* dirp);                      //成功時返回0,失敗返回-1  

  
使用opendir()函數(shù)打開不存在的目錄或者對目錄沒有訪問權(quán)限,以及對普通文件使用此函數(shù)都將返回NULL。opendir()函數(shù)成功操作后將返回指向DIR結(jié)構(gòu)的指針,而Unix操作系統(tǒng)DIR結(jié)構(gòu)用來保存被讀取目錄的相關(guān)信息。定義在頭文件<dirent.h>中的dirent結(jié)構(gòu)最常用到的成員是d_name,它可以保存文件名。

現(xiàn)來看下面的一個例程序:
[程序1]

  1. #include <iostream> 
  2. #include <unistd.h> 
  3. #include <sys/types.h> 
  4. #include <dirent.h> 
  5. #include <errno.h> 
  6. using namespace std;  
  7. int main()  
  8. {  
  9. DIR* dp;  
  10. cout << " Please enter a dir name: ";  
  11. char name[255];  
  12. memset(name,0x00,255);  
  13. cin >> name;  
  14. cout << " ----------------- " << endl;  
  15. dp = opendir(name);  
  16. if(dp == NULL)   
  17. {cout << errno << " [" <<strerror(errno) << "]" << endl;  
  18. return -1;}  
  19. dirent* dirp;  
  20. while((dirp = readdir(dp))!= NULL)  
  21. {cout << dirp->d_name << endl;}  
  22. closedir(dp);  
  23. return 0;} 

 
在Unix操作系統(tǒng)中,一旦出現(xiàn)程序執(zhí)行失敗的情況,系統(tǒng)會自動設(shè)置一個名為errno的全局變量,用于記錄錯誤的出錯ID號。使用strerror(errno)可以獲得指定錯誤的描述信息,不過在此之前一定要包含errno.h的頭文件。

編譯執(zhí)行程序1時,如果輸入一個已存在且有訪問權(quán)限的目錄名,程序會列出此目錄下的所有子目錄名以及文件名;如果輸入的是一個文件名,則會輸出20 [Not a directory];如果輸入的是一個不存在的目錄名,則會輸出2 [No such file or directory]。

以上,我們就對Unix操作系統(tǒng)環(huán)境高級程序設(shè)計目錄部分的知識學(xué)習(xí)完了,希望大家可以哈哈的鞏固基礎(chǔ)知識。

【編輯推薦】

  1. Unix操作系統(tǒng)上機基本操作解說
  2. 實現(xiàn)Unix操作系統(tǒng)終端打印
  3. 舉例說明Unix操作系統(tǒng)維護問題
  4. Unix操作系統(tǒng)命令行知識講解
  5. ***解析Unix操作系統(tǒng)中sar命令
責(zé)任編輯:小霞
相關(guān)推薦

2010-04-09 09:11:20

Unix操作系統(tǒng)

2010-04-08 10:42:28

Unix操作系統(tǒng)

2010-04-19 17:25:31

Unix操作系統(tǒng)

2010-04-16 17:19:58

Unix操作系統(tǒng)

2010-04-09 11:24:38

Unix操作系統(tǒng)

2010-04-16 18:19:32

Unix操作系統(tǒng)

2010-04-20 17:11:33

Unix操作系統(tǒng)

2010-04-15 10:53:20

2010-04-14 10:32:10

Unix操作系統(tǒng)

2010-04-15 15:46:57

Unix操作系統(tǒng)

2010-04-13 18:24:14

Unix操作系統(tǒng)

2010-04-19 16:47:40

Unix操作系統(tǒng)

2010-04-15 16:24:10

Unix操作系統(tǒng)

2010-04-15 13:02:41

Unix操作系統(tǒng)

2010-04-16 10:51:09

2010-05-06 17:59:50

Unix命令

2010-04-30 17:27:59

Unix操作系統(tǒng)

2010-04-07 15:59:29

Unix操作系統(tǒng)

2010-04-16 18:15:11

Unix操作系統(tǒng)

2010-04-16 18:02:30

Unix操作系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日韩在线中文 | 97视频在线免费 | 一区在线视频 | 日韩中文字幕一区二区 | 免费黄色a视频 | 成人精品一区亚洲午夜久久久 | 日韩一区二区福利视频 | 日韩欧美国产精品 | 久久一区二区三区免费 | 老牛影视av一区二区在线观看 | 久久久久久久国产精品 | 免费看的黄网站 | 国产视频第一页 | 超碰精品在线 | 免费色网址| 四虎在线观看 | 天天操操 | 亚洲国产精品自拍 | 日本午夜免费福利视频 | 粉嫩在线| 日韩欧美三区 | 欧美高清性xxxxhd | 日本久久久一区二区三区 | 网色 | 中文字幕视频一区 | 精品免费国产一区二区三区四区 | 亚洲第1页 | 日韩免费看片 | 国产在线aa | 黄色毛片在线看 | 狠狠插狠狠操 | 97视频在线观看网站 | 欧美日韩精品一区 | 亚洲国产中文字幕 | 亚洲精品一区二区三区蜜桃久 | 国产一在线观看 | 色噜噜亚洲男人的天堂 | 中文字幕免费视频 | 欧美在线不卡 | 毛片大全 | 亚洲av毛片成人精品 |