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()。