c語言dir用法,R語言中dir

本文目錄一覽:

單片機中的dir是什麼意思

單片機語句中的dir意思是設置單片機端口方向的而已。

如果程序是要實現呼吸燈功能,那麼位變量DIR則應該是用來表示方向(DIRection)的變量,比如DIR=1時表示呼,DIR=0時表示吸,具體還得程序完整貼出來才能確定。

Linux下C語言編程,跟目錄操作相關的有個DIR數據結構,是個結構體的,具體是怎麼定義的。求解惑

APUE中大致是這麼說的:DIR結構是個內部結構,作用類似於FILE結構,讀目錄時我們並不關係DIR結構的細節,它只是作為opendir的返回值,以及readdir、rewinddir、closedir、telldir、seekdir的函數的操作對象,讀目錄是只調用這些函數就行了,就像我們使用FILE結構一樣,很少有人關注FILE的定義。另外,只有內核才能寫目錄。

<h2 id='C語言中的include中的相關函數和作用’>C語言中的include中的相關函數和作用

chdir()改變當前目錄的函數

原形:int chdir(const char *path)

功能:把由path指定的目錄改為當前目錄。path參數中可以指定驅動器號,如「a:\\ddd」, 但只是改變該驅動器上的當前目錄,對當前活動驅動器上的當前目錄無影響。

返回值:0(成功);-1(失敗)

頭文件:dir.h

=======================================================================================

findfirst()函數和findnext()函數

調用方式:整形數=findfirst(文件名,結構變量名,屬性常數組合(如0x26));其中定義struct ffblk 結構變量名;

原形:int findfirst(path,buffer,attr)和int findnext(buffer)

char *path;//要檢索的文件名

struct ffblk

{

char ff_reserved[21];

char ff_attrib;//被檢索的文件屬性

unsigned ff_ftime;//最後修改的時間

//(0-4位:秒數/2;5-10位:分數;11-15位:小時數)

unsigned ff_fdate;//最後修改的日期

//(0-4位:日;5-8位:月;9-15位:年減1980)

long ff_fsize;//文件大小

char ff_name[13];//組名

}*buffer;

int attr;//要檢索的文件屬性

功能:檢索由path和attr指定的文件,把結果返回到buffer。findfirst返回關於第一個指定文件的信息,findnext繼續檢索。

返回值:0(檢索成功),-1(沒有找到指定的文件)

屬性常數:

FA_NORMAL(0x00) 含意:Normal file, no attributes

FA_RDONLY(0x01) 含意:只讀

FA_HIDDEN(0x02) 含意:隱含文件

FA_SYSTEM(0x04) 含意:系統文件

FA_LABEL(0x08) 含意:卷標

FA_DIREC(0x10) 含意:子目錄

FA_ARCH(0x20) 含意:修改的文件Archive

頭文件:dir.h(dos.h)

====================================================================================

fnmerge()建立文件路徑函數

原形:void fnmerge(char *path,const char *drive,const char *dir, const char *name,const char *ext)

功能:合成drive:\dir\name.ext,放在path

頭文件:dir.h

fnsplit()分解完整的路徑名函數

原形:int fnsplit(char *path,const char *drive,const char *dir,const char *name,const char *ext)

功能:把文件名路徑path分成4個部分存放。

其中drive中有冒號;dir中有開始和結尾的反斜杠;ext包括開始圓點

返回值:如果有擴展名,則 返回值EXTENSION!=0

如果有文件名,則 返回值FILENAME!=0

如果有目錄名,則 返回值DIRECTORY!=0

如果有驅動器號,則返回值DIRVE!=0

頭文件:dir.h

====================================================================================

getcurdir()讀取指定驅動器的當前目錄的函數

原形:int getcurdir(int drive,char directory)

drive=0(缺省);1(A驅動器);…

directory用來存放目錄名,不包括驅動器名,不以反斜杠開始。

返回值:0(調用成功);1(出錯)

頭文件:dir.h

getcwd()讀取當前目錄的函數

原形:char *getcwd(char *buf,int buflen)

功能:讀取當前目錄的完整路徑名(包括驅動器名),最長為buflen個位元組,存放在buf中。如果buf為NULL,函數將分配一個buflen位元組長的緩衝區,以後可將本函數的返回值作為free函數的參數來釋放該緩衝區。

返回值:若buf非空,調用成功返回buf,出錯返回NULL;若buf為NULL,返回指向已經分配的內存緩衝區地址。

頭文件:dir.h

getdisk()讀取當前磁盤驅動器號函數

原形:int getdisk(void)

功能:取得當前驅動器號(0=A;1=B;….)

頭文件:dir.h

======================================================================================

mkdir()創建目錄函數

原形:int mkdir(const char *path)

功能:按給定的路徑建立一個新的目錄

頭文件:dir.h

返回值:0(成功);-1(失敗)

mktemp()建立一個唯一的文件名的函數

原形:char *mktemp(char *template)

功能:使用一個唯一的文件名來替換字符串template,並返回template。

頭文件:dir.h

======================================================================================

rmdir()刪除目錄函數

原形:int rmdir(const char *path)

注意:刪除的目錄不能是當前目錄,不是根目錄,是空目錄

返回值:0(成功);-1(操作出錯)

頭文件:dir.h

searchpath()按dos路徑查找一個文件的函數

原形:char *searchpath(const char *file)

用法:p=searchpath(“文件名”); 先定義char *p;

功能:搜索dos路徑(環境變量中的path=….)來定位由file給出的文件。

返回值:指向完整路徑名字符串的指針。定位失敗返回NULL。

頭文件:dir.h

segread()讀段寄存器函數

原形:void segread(struct SREGS *segp)

作用:把當前寄存器的值保存到SREGS型機構變量segp中。

segs.cs=代碼段寄存器的值;

segs.ds=數據段寄存器的值;

segs.es=附加段寄存器的值;

segs.ss=堆棧段寄存器的值;

setdisk()設置當前驅動器的函數

原形:int setdisk(int drive)

功能:把由drive指定的驅動器修改成當前驅動器,返回可使用的驅動器數。

頭文件:dir.h

settextstyle()顯示字符的當前設置函數

功能:設置當前輸出英文字符的字體、大小和方向。

調用方式:

void far settextstyle(int font,int direction,int charsize)

其中①參數font確定所選定的字體形狀,

DEFAULT_FONT 或0 是8×8位圖字體

TRIPLEX_FONT 或1 是三重矢量字體

SMALL_FONT 或2 是小號矢量字體

SANS_SERIF_FONT或3 是無襯線矢量字體

GOTHIC_FONT 或4 是哥特矢量字體

②參數durection字符的顯示方向,

HORIZ_DIR 或0 是水平方向

VERT_DIR 或1 是垂直方向

③參數charsize表示字符放大的倍數,其值為0到10。

setvect()設置中斷向量函數

setvect(int 中斷號,void interrupt(*中斷函數名))

功能:把中斷服務程序的地址裝入中斷向量表中。

調用方法:setvect(中斷號,中斷函數名即地址);

(1)得預先定義要代替原函數的新函數

void interrupt 中斷函數名(void)

{……}

(2)得先保留原中斷函數地址

void interrupt (*保留函數名)(void);

保留函數名=getvect(中斷號);

(3)事後得將原中斷函數地址裝迴向量表中

setvect(中斷號,保留函數名);

setviewport()建立視口的函數

原形: void far setviewport(int left,int top,int right,int bottom,int clip)

功能:用左上角坐標left,top和右下角坐標right,bottom建立一個視口,如果clip為1,則超出視口的輸出自動被剪裁掉;如果clip為0,則不被剪裁。

例:setviewport(0,0,100,100,1)建立對角線為0,0和100,100的視口,並帶有剪裁功能。

註:要清除當前視口,用函數clearnviewport()。

怎樣使用C語言列出某個目錄下的文件?

用C語言列出目錄下的文件,在linux下可採用readdir()函數來實現,代碼實現過程為:

打開目錄

循環讀目錄,輸出目錄下文件

關閉目錄指針

參考代碼:

#include dirent.h

#include stdio.h

int main()

{

    DIR *dirp; 

    struct dirent *dp;

    dirp = opendir(“.”); //打開目錄指針

    while ((dp = readdir(dirp)) != NULL) { //通過目錄指針讀目錄

        printf(“%s\n”, dp-d_name );

    }      

    (void) closedir(dirp); //關閉目錄

    return 0;

}

在windows下,代碼如下:

#include io.h

#include stdio.h

void printDir( const char* path )

{

    struct _finddata_t data;

    long hnd = _findfirst( path, data );    // 查找文件名與正則表達式chRE的匹配第一個文件

    if ( hnd  0 )

    {

        perror( path );

    }

    int  nRet = (hnd 0 ) ? -1 : 1;

    while ( nRet = 0 )

    {

        if ( data.attrib == _A_SUBDIR )  // 如果是目錄

            printf(”   [%s]*\n”, data.name );

        else

            printf(”   [%s]\n”, data.name );

        nRet = _findnext( hnd, data );

    }

    _findclose( hnd );     // 關閉當前句柄

}

void main()

{

printDir(“d:/*.*”);

}

相關函數說明:

long _findfirst( char *filespec, struct _finddata_t *fileinfo );  

// 功  能 : 提供與filespec指定入口泛式匹配的第一個文件.通常後繼用_findnext()函數來完成某泛式下的文件遍歷.  

// 頭文件 : #include io.h  

// 參  數 : filespec – 目標文件規範,可以包含通配符  

//          fileinfo – 文件信息buffer  

// 返回值 : 成功返回唯一的搜索句柄  

//          出錯返回-1,且設置errno為如下值:  

//          ENOENT 該泛式無法匹配  

//          EINVAL 無效文件名  

int _findnext( long handle, struct _finddata_t *fileinfo );  

// 功  能 : 按照前面_findfirst中的泛式規則,查找下一個符合該泛式的文件,並以此為依據修改fileinfo中的值  

// 頭文件 : #include io.h  

// 參  數 : long handle – 搜索句柄(通常由緊靠其前的_findfirst()返回)  

//          fileinfo    – 文件信息buffer  

// 返回值 : 成功返回0  

//          出錯返回-1

int _findclose( long handle );  

// 功  能 : 關閉搜尋句柄並釋放相應資源  

// 頭文件 : #include io.h  

// 參  數 : long handle – 搜索句柄(通常由緊靠其前的_findfirst()返回)  

// 返回值 : 成功返回0  

//          出錯返回-1

如何用c語言實現DIR 並轉向到一個文件,再打開文件讀出一個一個文件名。並寫入文本文件?

使用system(“dos命令”)操作,如

system(“d: nul”); /* 轉換到d盤 */

system(“cd data nul”); /* 轉換到子目錄data */

system(“dir /o:d d:\\mulu.txt”); /* 將d:\data目錄下的文件名輸出到d盤的mulu.txt文件中 */

c語言 中DIR類型

C語言中的數據類型簡單的分為兩類,一類是內置數據類型,比如int、float

;一類是用戶自定義類型,比如結構體、聯合體、位域等。

默認的數據類型中沒有DIR類型,因此應該是一種用戶自定義類型,可以在源代碼中查找相關的類型定義。

原創文章,作者:BBDR,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/135622.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
BBDR的頭像BBDR
上一篇 2024-10-04 00:14
下一篇 2024-10-04 00:14

相關推薦

  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論