程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c語言常用庫函數使用方法及用途

c語言常用庫函數使用方法及用途

編輯:關於C語言

absread()讀磁盤絕對扇區函數

原形:int absread(int drive,int num,int sectnum,void *buf)

功能:從drive指定的驅動器磁盤上,sectnum指定的邏輯扇區號開始讀取(通過DOS中斷0x25讀取)num個(最多64K個)扇區的內容,儲存於buf所指的緩沖區中。

參數:drive=0對應A盤,drive=1對應B盤。

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

頭文件:dos.h

abswrite()寫磁盤絕對扇區函數

原形:int abswrite(int drive,int nsects,int lsect,void *buffer)

drive=0(A驅動器)、1(B驅動器)、

nsects=要寫的扇區數(最多64K個);

lsect=起始邏輯扇區號;

buffer=要寫入數據的內存起始地址。

功能:將指定內容寫入(調用DOS中斷0x26)磁盤上的指定扇區,即使寫入的地方是磁盤的邏輯結構、文件、FAT表和目錄結構所在的扇區,也照常進行。

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

頭文件:dos.h

atof()將字符串轉換成浮點數的函數

原形:double atof(const char *s)

功能:把s所指向的字符串轉換成double類型。

s格式為:符號 數字.數字 E符號 數字

返回值:字符串的轉換值。

頭文件:math.h、stdlib.h

atoi()將字符串轉換成整型數的函數

原形:int atoi(const char *s)

功能:把s所指向的字符串轉換成int類型。

s格式為:符號 數字

返回值:字符串的轉換值。若出錯則返回0。

頭文件:stdlib.h

atol()將字符串轉換成長整型數的函數

原形:long atol(const char *s)

功能:把s所指向的字符串轉換成long int類型。

s格式為:符號 數字

返回值:字符串的轉換值。若出錯則返回0。

頭文件:stdlib.h

bcd()把一個數轉換成對應的BCD碼的函數

原形:bcd bcd(int x)

bcd bcd(double x)

bcd bcd(double x,int decimals)

注意:BCD碼的精度可達17位。參數decimals是可選的,用來指定轉換後小數點後的位數。

頭文件:bcd.h

bdos()

原形∶int bdos(int fnum,unsigned dx,unsigned al)

其中fnum是系統調用號;dx是傳給寄存器DX的值;al是傳給寄存器AL的值;

功能∶DOS系統調用(INT21H)

返回值∶AX中的值

biosdisk()調用BIOS磁盤驅動程序函數

原形:char biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer)

功能:使用中斷0x13,直接調用BIOS進行磁盤操作

參數:(1)cmd:

2-數據以每扇區512字節的格式讀入buffer,起始扇區由head、track和sector定,扇區數由nsects定。

3-將buffer中的數據按每扇區512字節寫入磁盤。

4-對扇區進行數據校驗。

6-格式化一個磁盤並對化扇區設置化標志。

8-返回當前驅動器參數在buffer的前4個字節中。

10-長讀,每扇區讀入512字節加上額外的4個字節。

11-長寫,每扇區寫入512字節加上額外的4個字節。

(2)drive:0-第一個軟驅;1-第二個軟驅;0x80-第一個硬驅

(3)head:磁頭

(4)track:磁道

(5)sector:扇區

(6)nsects:扇區數

(7)buffer:數據緩沖區,定義為unsigned char buffer[];

返回值:0x00-操作成功

0x01-錯誤命令

0x03-企圖寫具有寫保護的磁盤

0x07-驅動器參數設置錯誤

0x10-磁盤讀/CRC/ECC錯誤

頭文件:bios.h

注:對於硬盤主引導記錄扇區head=0,track=0,sector=1

biosprint()調用BIOS打印機I/O接口的函數

原形:int biosprint(int cmd,int abyte,int port)

功能:通過BIOS中斷0x17在由參數port指定的打印機上完成各種打印機功能。

port=0(LPT1)

=1(LPT2);

cmd=0(打印字符abyte)

1(初始化打印機端口)

2(讀打印機狀態);

abyte=0-255;

返回值:打印機狀態

位0(設備超時);位3(I/O出錯);位4(打印機已選擇);位5(沒紙);位6(打印機確認);位7(不忙)

頭文件:bios.h

calloc()分配內存函數

原形:void *calloc(size_t nitems,size_t size)

功能:在堆中分配一塊內存,將該內存的內容全部清0。

返回值:返回指向新分配內存的指針。空間不夠則返回NULL。

頭文件:stdlib.h、calloc.h

ceil()

原形∶double ceil(double num)

功能∶求不小於num的最小雙精度整數

頭文件∶math.h

cgets()讀字符串函數

原形:char *cgets(char *str)

功能:從控制台讀入一個字符串,並將該字符串(和字符串長度)存入有str所指向的地址中。

注意:在調用cgets之前,必須將要讀入的字符串最大長度存入str[0]中,返回時str[1]被設置為實際讀入的字符數。實際字符串內容從str[2]開始,以空字符()結尾。

返回值:指向str[2]的指針。

頭文件:conio.h

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

原形:int chdir(const char *path)

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

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

頭文件:dir.h

_chmod()改變文件存取權限的函數

原形:int _chmod(const char *path,int func[,int attrib])

功能:讀取(func=0時)或設置(func=1時)DOS文件屬性。

attrib=FA_RDONLY 只讀

attrib=FA_HIDDEN 隱藏文件

attrib=FA_SYSTEM 系統文件

attrib=FA_LABLE 卷標

attrib=FA_DIREC 目錄

attrib=FA_ARCH 檔案

返回值:失敗時返回-1。成功時返回文件的屬性字節,如果 返回值&FA_RDONLY 不等於0,則文件是只讀文件;......

頭文件:io.h、dos.h

chmod()改變文件存取權限的函數

原形:int chmod(const char *path,int amode)

功能:根據amode的值,設置由path所指文件的存取權限。

amode的值     存取權限

S_IWRITE      允許寫

S_IREAD      允許讀(只讀)

S_IREAD|S_IWRITE  可讀可寫

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

頭文件:io.h、sysstat.h

clock()

原形∶long clock(void)

功能∶測得從程序開始到調用處處理機所用的時間

頭文件∶time.h

close()關閉文件函數

原形:int close(int handle)

功能:關閉由文件句柄所指向的文件,句柄是調用_creat、creat、creatnew、creattemp、dup、dup2、_open或open時得到的。該函數並不在文件末尾寫一個Ctrl-Z字符,如果想用該字符結束文件,必須顯式地給出該字符。

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

頭文件:io.h

closegraph()關閉圖形函數

原形:void far closegraph(void)

功能:釋放圖形系統分配的所有內存,將屏幕恢復到調用initgraph之前的模式。

頭文件:graphics.h

cos()

原形∶double cos(double arg)

功能∶計算arg(弧度)的余弦值

頭文件∶math.h

ctrlbrk()設置ctrl-break處理程序的函數

原形:void ctrlbrk(int(*handle)(void))

功能:修改中斷向量0x23,使用新的ctrl-break中斷處理函數。

用法:ctrlbrk(函數名);

先定義函數:int 函數名(void){...}

頭文件:dos.h

delay()暫停函數

原形:void delay(unsigned milliseconds)

功能:暫停當前所執行的程序milliseconds毫秒。

頭文件:dos.h

disable()屏蔽中斷的宏

原形:void disble(void)

功能:屏蔽中斷,只允許從外部設備來的不可屏蔽中斷(NMI)。

頭文件:dos.h

enable()開硬件中斷的宏

原形:void enable(void)

功能:開放中斷,允許接受任何設備產生的中斷。

頭文件:dos.h

exec()加載並運行其它程序的函數族

execl(),execle(),execlp(),execlpe(),

execv(),execve(),execvp(),execvpe()

原形∶ int execl(char *path,char *arg0,*arg1,...,*argn,NULL)

int execle(char *path,char *arg0,*arg1,...,*argn,NULL,char **env)

int execlp(char *path,char *arg0,*arg1,...,*argn,NULL)

int execlpe(char *path,char *arg0,*arg1,...,*argn,NULL,char **env)

int execv(char *path,char *argv[])

int execve(char *path,char *argv[],char **env)

int execvp(char *path,char *argv[])

int execvpe(char *path,char *argv[],char **env)

其中,path是調用的子程序的文件名,在exec後面的後綴具有某種功能:

p表示函數能夠在由DOS環境變量PATH的目錄中搜索子進程文件,如果path中未指明文件所在目錄,函數將首先在當前目錄中找,然後在DOS環境變量指定的目錄中找。

l表示參數指針(arg0,...,argn)按單獨參數傳送。當預先知道要傳送的參數個數時,通常用帶後綴l的函數。

v表示參數指針(arg0,...,argn)按指針數組傳送。當要傳送的參數可變時,使用帶後綴v的函數。

e表示參數env可以傳送到子進程,該函數可用來修改子進程的環境。若無e後綴,子進程將繼承父進程的環境。

注意:arg0+...+argn,或arg[0]+...+arg[n]的總長度必需小於128字節。當調用exec函數時,原先已經打開的文件在子進程中仍然是打開的。

功能:加載並運行其它程序,調用時必須有足夠的內存空間用於加載和執行子程序,子程序將覆蓋父程序。

頭文件:process.h

farcalloc()從遠堆中分配內存的函數

原形:void far *farcalloc(unsigned long nunits,unsigned long unitsz)

功能:從遠堆中為包含nunits個元素的數組分配內存,每一區unitsz字節長。

用法:fptr=farcalloc(數目,sizeof(char));

先定義:char far *fptr;

注意:所有可用RAM能被分配;大於64K的塊能被分配;用遠指針存取該塊。微模式不能用。

返回值:返回指向新分配塊的指針,若內存不夠,則返回NULL。

頭文件:alloc.h

farfree()從遠堆中釋放一塊已分配內存的函數

原形:void farfree(void far *block)

頭文件:alloc.h

farmalloc()從遠堆中分配內存的函數

原形:void far *farmalloc(unsigned long nbytes)

使用方式:fptr=farmalloc(字節數);

先定義char far *fptr;

功能:從遠堆中分配長nbytes字節的內存。

注意:所有可用RAM能被分配;大於64K的塊能被分配;用遠指針存取該塊。微模式不能用。

返回值:返回指向新分配內存的指針,若內存不夠,則返回NULL。

頭文件:alloc.h

farrealloc()調整遠堆中已分配塊的函數

原形:void far *farrealloc(void far *oldblock,unsigned long nbytes)

返回值:返回調整後的新內存地址。若不能重新分配,則返回NULL。

頭文件:alloc.h

fclose()關閉一個流函數

原形:int fclose(FILE *stream)

使用方式:fclose(文件指針名);其中文件指針名=fopen();

功能:關閉指定的流,關閉前清除所有與stream相聯的緩沖區,釋放系統分配的緩沖區,但由setbuf設置的緩沖區不能自動釋放。

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

頭文件:stdio.h

fcloseall()關閉打開的流的函數

原形:int fcloseall(void)

功能:關閉所有打開的流,由stdin、stdout、stdprn、stderr和stdaux設置的流除外。

返回值:關閉流的總數。如果發現錯誤則返回EOF。

頭文件:stdio.h

feof()檢查文件是否結束的函數

原形∶int feof(FILE *fp)

返回值∶文件結束返回非0值,否則返回0。

頭文件∶stdio.h

fgets()從流中讀取一字符串的函數

原形:char *fgets(char s[],int n,FILE *stream)

使用格式:fgets(字符串指針,字符個數,文件指針)

功能:從輸入流stream中讀入字符存到s串中。當讀了n-1個字符或遇到換行符時,函數停止讀過程。fgets在s串尾保留換行字符。讀入的最後一個字符後面加一個空字符。

返回值:成功時返回字符串參數s,出錯或遇到文件結束時,返回NULL。

頭文件:stdio.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)

floodfill()填充區域的函數

原形:void far floodfill(int x,int y,int border)

功能:在圖形設備上用顏色border圍起來的區域將用當前填充顏色填充。(x,y)是待填充區域的起點,若起點在封閉區域內,則區域內被填充;若起點在封閉區域外,則區域外被填充。

頭文件:graphics.h

floor()

原形∶double floor(double num)

功能∶求不大於num的最大雙精度整數

頭文件∶math.h

fnmerge()建立文件路徑函數

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

功能:合成drive:dir ame.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

fopen()打開一個流函數

原形:FILE *fopen(const char *filename,const char *mode)

功能:打開用filename指定的文件,並使其與一個流相聯。

使用方式:文件指針名=fopen("文件名","處理方式")

"處理方式"取:

"rt"  打開一個文本文件,只能讀。

"wt"  生成一個文本文件,只能寫。若文件存在則被重寫。

"at"  打開一個文本文件,只能在文件尾部添加。

"rb"  打開一個二進制文件,只能讀。

"wb"  生成一個二進制文件,只能寫。

"ab"  打開一個二進制文件,只能在文件尾部添加。

"rt+"  打開一個文本文件,可讀可寫。

"wt+"  生成一個文本文件,可讀可寫。

"at+"  打開一個文本文件,可讀可添加。

"rb+"  打開一個二進制文件,可讀可寫。

"wb+"  生成一個二進制文件,可讀可寫。

"ab+"  打開一個二進制文件,可讀可添加。

返回值:指明流的指針(成功時)或NULL(失敗時)

注:需先定義 FILE *文件指針名;

"文件名"若用 argv[1]代替,則可使用命令行形式指定文件名

FP_OFF()獲取遠地址偏移量的宏

原形:unsigned FP_OFF(void far *p)

功能:取得和設置遠指針*p的偏移量

返回值:偏移量

頭文件:dos.h

fprintf()傳送輸出到一個流中的函數

原形:int fprintf(FILE *stream,const char *format[,argument,...])

功能:①向文件指針指向的文件輸出ASCⅡ代碼

②向顯示器輸出錯誤信息

使用形式:

①fprintf(文件指針,"輸出格式",輸出項系列);

②fprintf(stderr,"錯誤信息");

使用實例:fprintf(stream,"%d %c %f",i,c,f);

其中定義FILE *stream;

int i; char c; float f;

返回值:成功則返回輸出的字節數,錯誤則返回EOF。

頭文件:stdio.h

FP_SEG()獲取遠地址段值的宏

原形:unsigned FP_SEG(void far *p)

功能:取得和設置遠指針*p段地址值

返回值:段地址值

頭文件:dos.h

free()釋放已分配內存的函數

原形:void free(void *block)

功能:釋放由calloc、malloc、realloc函數調用所分配的內存。

頭文件:stdlib.h、alloc.h

fscanf()格式化輸入函數

原形:int fscanf(FILE *stream,const char *format[,address,...])

功能:從一個流中掃描輸入字段,一次掃描一個字符,每個輸入字段根據format所指格式指示符格式化後,把輸入字段存在format後面由地址參數給出的位置上。

使用格式:fscanf(文件指針,"輸入格式",輸入項系列);

使用實例:fscanf(fp,"%d",&b);

從fp指向的文件中讀取十進制整數 (ASCⅡ形式)賦予變量b

注:當文件指針是stdin時,與scanf功能完全相同

頭文件:stdio.h

fseek()移動文件指針函數

原形:int fseek(FILE *stream,long offset,int whence)

作用:強制一個文件的位置指針指向某個特定的位置(甚至超出文件的尾部)。

使用格式:fseek(*文件指針,偏移(長整型),起點)

定義 FILE *文件指針名;

"起點"取值:

0或SEEK_SET(表示文件開頭)

1或SEEK_CUR(表示當前位置)

2或SEEK_END(表示文件尾端)

返回值:0表示成功,非0值表示失敗

頭文件:stdio.h

fwrite()把參數寫入流中的函數

原形:size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream)

功能:附加n個數據項(每個數據項長度為size個字節)到指定的輸出文件後,數據從ptr處開始添加。ptr是指向任意對象的指針。

返回值:調用成功時返回實際寫的數據項數,出錯時返回一短整形數值。

頭文件:stdio.h

例:fwrite(&s,sizeof(s),1,stream);

其中s是一結構變量,stream=fopen();

gcvt()把雙精度數轉化成字符串的函數

原形∶char*gcvt(value,ndigit,buf)

其中∶double value是待轉化數

int ndigit是轉化長度

char *buf保存轉化後的地址

頭文件∶stdlib.h

geninterrupt()執行中斷函數

原形:void geninterrupt(int n)

調用方式:geninterrupt(軟中斷號)

功能:產生一個8086軟中斷

注:需先向寄存器傳遞入口信息(用偽變量)

例如  偽變量=要賦的值(入口信息);

調用geninterrupt()函數後得接受出口信息

例如  變量名=偽變量

偽變量∶Turbo C 允許使用偽變量直接訪問相應的8086寄存器。偽變量的類型有兩種。

① unsigned int : _AX、 _BX、 _CX、 _DX、 _CS、 _DS、 _SS、 _ES、_SP、 _BP、 _DI、 _SI

② unsigned char: _AL、 _AH、 _BL、 _BH、 _CL、 _CH、 _DL、 _DH

getc()從流中取字符的宏

原形:int getc(FILE *stream)

功能:返回輸入流stream中一個字符,移動文件指針使之指向下一個字符。

使用格式:字符變量=getc(文件指針)

(正常情況下讀取到代碼值,讀到文件尾或出錯時返回EOF)

注:需定義 char 字符變量;FILE *文件指針;

頭文件:stdio.h

getch()從鍵盤無回顯地讀取一字符的函數

功能:將鍵盤上輸入的單個字符的值(ASCⅡ 碼)立刻賦給字符型變量

調用方式:字符形變量=getch()

注:需先定義 char 字符形變量;

頭文件:conio.h

getchar()從stdin流中讀取一個字符的函數

功能:將鍵盤上輸入的單個字符的值(ASCⅡ 碼)回車後賦給字符型變量

調用方式:字符型變量=getchar()

注:需先定義 char 字符型變量;

頭文件:stdio.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

getdate()讀取系統日期函數

原形:void getdate(pdate)
   struct date
   {
   int da_year;
   int da_day;
   int da_mon;
   };
   struct date *pdate;

頭文件:dos.h

getdfree()讀取磁盤空閒空間的函數

原形:void getdfree(drive,dtable)
   unsigned char drive;驅動器號(0-當前;1-A;2-B;...)
   struct dfree
   {
   unsigned df_avail;//可使用的簇數
   unsigned df_total;//每個驅動器的簇數
   unsigned df_bsec;//每個扇區的字節數
   unsigned df_sclus;//每個簇的扇區數(出錯時返回0xffff)
   }*dtable;

功能:把由drive指定的關於驅動器的信息返回到dtable

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

原形:int getdisk(void)

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

頭文件:dir.h

getenv()讀取環境變量的當前值的函數

原形:char *getenv(const char *name)

用法:s=getenv("環境變量名");

需先定義char *s;

功能:返回一給定的環境變量值,環境變量名可大寫或小寫。如果指定的變量在環境中未定義,則返回一空串。

頭文件:stdlib.h

getimage()將指定區域的位圖象存入內存的函數

原形:void far getimage(int left,int top,int right,int bottom,void far *bitmap)

功能:將圖像(矩形區域)從屏幕拷貝到內存,*bitmap指向內存中存放圖像的區域。該區域的前兩個字節用於存放矩形的高和寬。

頭文件:graphics.h

getmaxx()返回屏幕上最大的X坐標值的函數

原形:int far getmaxx(void)

功能:返回當前圖形驅動程序和圖形模式下最大的X坐標值。

頭文件:graphics.h

getmaxy()返回屏幕上最大的Y坐標值的函數

原形:int far getmaxy(void)

功能:返回當前圖形驅動程序和圖形模式下最大的Y坐標值。

頭文件:graphics.h

getpixel()讀取像素顏色的函數

原形:unsigned far getpixel(int x,int y)

頭文件:graphics.h

getpsp()

原形∶unsigned getpsp(void)

功能∶使用DOS系統調用0x62,返回程序段前綴(PSP)的段地址

頭文件∶dos.h

gets()從標准輸入流stdio中讀取一字符串的函數

功能:將鍵盤上輸入的字符串立刻賦予字符串變量並顯示出來

調用方式:gets(字符串變量名)

注:需定義 char *字符串變量名;

gettime()讀取系統時間的函數

原形:void gettime(ptime)
   struct time
   {
   unsigned char ti_min;
   unsigned char ti_hour;
   unsigned char ti_hund;//百分之一秒
   unsigned char ti_sec;
   };
   struct time *ptime;

getvect()讀取中斷向量函數

原形:void interrupt(*getvect(int interruptno))

功能:讀入由interruptno(0-255之間)所指定的中斷向量值,並把該中斷向量值作為中斷函數的遠指針返回。

返回值:指定中斷向量的當前4字節值。

頭文件:dos.h

使用實例:oldfunc=getvect(5);

先定義void interrupt(*oldfunc)();

用後恢復setvect(5,oldfunc);

getx()返回當前圖形方式下位置的X坐標值的函數

原形:int far getx(void);

頭文件:graphics.h

gety()返回當前圖形方式下位置的Y坐標值的函數

原形:int far gety(void);

頭文件:graphics.h

imagesize()返回保存圖像緩沖區大小的函數

原形:unsigned far imagesize(int left,int top,int right,int bottom)

功能:確定保存圖像所需的存儲區大小。

返回值:返回存儲區的大小(字節),若所需內存大於等於64K-1字節,則返回0xffff(-1)。

頭文件:graphics.h

initgraph()顯示模式控制函數(初始化圖形系統函數)

功能:把圖形適配器設置為一種圖形模式,將選擇的圖形驅動程序(在BGI文件中)裝入到內存。

調用方式:

void far initgraph(int far *driver,int far *mode,char far*path)

其中: *driver可以是數值(0-10),也可是符號值(DETECT、CGA、MCGA、EGA、EGA64、EGAMONO、RESERVED、HERCMONO、ATT400、VGA、 PC3270)。

*mode參數從圖形系統為各種常用的圖形適配器設置的圖形模式中(CGAC0、…、IBM8514HI--見頭文件graphics.h)選取。常用的有:VGAMED或1(640×350)(等效於BIOS的模式15)、EGAHI或1(640×350)等。

path指向的字符串為裝入驅動程序的路徑。如果缺省路徑,驅動程序在當前目錄。

結束方法:

①void far closegraph()函數用於當程序還要繼續在字符模下運行時。它釋放由圖形函數所占用的內存,同時把屏幕模式恢復為調用initgraph()之前的模式。

②void far restorecrtmode()函數用於結束運行。將圖形適配器設置到原來的模式。任何分配的內存都將自動釋放。

頭文件:graphics.h

inport()從端口中讀入一個字的函數

原形:int inport(int portid)

調用方式:整型變量=inport(0x端口號);

功能:從指定端口地址讀一個字。

頭文件:dos.h

inportb()從端口讀入一個字節的函數

原形:unsigned char inportb(int portid)

調用方式:字符變量=inportb(0x端口號);

功能:從指定端口地址讀一個字節。

頭文件:dos.h

int86()執行中斷函數(調用8086軟中斷函數)

原形:int int86(int intno,union REGS *inregs,union REGS *outregs)

調用方式:int86(中斷號,&輸入指針名,&輸出指針名)

返回值:中斷處理結束時的AX寄存器的值,錯誤時outregs->x.cflag!=0

功能:函數int86() 用來執行指定的8086軟中斷。首先把輸入指針所指的共用體中的內容拷貝到CPU 的寄存器中,隨即產生對應的中斷,返回後將CPU寄存器(AX)的內容拷貝到輸出指針指向的共用體中。在使用int86() 函數進行BIOS接口的系統調用時,有的中斷調用設有若干選擇項,這些選擇項可以根據調用時AH寄存器中的值來進行訪問。

注:1.需先定義 union REGS 輸入指針名,輸出指針名;

2.向寄存器傳遞入口信息

輸入指針名.x.寄存器名=要賦的值(入口信息);

3.調用int86後得接受出口信息

變量名=輸出指針名.x.寄存器名

4.REGS的定義(在dos.h中):

struct WORDREGS{unsigned int ax, bx, cx, dx, si, di, cflag, flags;}

struct BYTEREGS{unsigned char al, ah, bl, bh, cl, ch, dl, dh;}

union REGS{struct WORDREGS x;struct BYTEREGS h;}

頭文件:dos.h

int86x()執行中斷函數 (通用8086軟中斷接口函數)

頭文件:dos.h

原形:int int86x(int intno,union REGS *inregs,union REGS *outregs,struct SREGS * segregs)

調用方式:int86x(中斷號,&輸入指針名,&輸出指針名,&段寄存器指針名);

注1:需先定義 union REGS 輸入指針名,輸出指針名;

  union REGS 示意圖
   struct     struct
   WORDREGS    BYTEREGS
   ┌  ┌───────┬──────┐──┬──  ┐
   │  │       │   al   │ 1 byte   │
   │  │   ax   ├──────┤──┴─ 2 bytes
   │  │       │   ah   │       │
   │  ├───────┼──────┤─────  ┘
   │  │       │   bl   │
   │  │   bx   ├──────┤
   │  │       │   bh   │
   │  ├───────┼──────┤
   │  │       │   cl   │
   │  │   cx   ├──────┤
   │  │       │   ch   │
   │  ├───────┼──────┤
   │  │       │   dl   │
   │  │   dx   ├──────┤
   │  │       │   dh   │
   union regs├───────┼──────┤
   │  │       │      │
   │  │   si   │      │
   │  │       │      │
   │  ├───────┤      │
   │  │       │      │
   │  │   di   │      │
   │  │       │      │
   │  ├───────┤      │
   │  │       │      │
   │  │  cflag   │      │
   │  │       │      │
   │  ├───────┤      │
   │  │       │      │
   │  │  flags   │      │
   │  │       │      │
   └  └───────┴──────┘
   │   x 兩個結構變量 h  │
   └──  共享同一存儲域 ──┘

其中字段flags對應於標志寄存器。字段cflag僅對應於進位標志位,函數在調用時不用該字段,只在返回時設置這個字段,因為許多BIOS服務都是通過進位標置為0還是1來表示成功還是失敗。

注2:需先定義 struct SREGS 段寄存器指針名;

結構SREGS定義如下

struct SREGS {unsigned int es,cs,ss,ds}

函數只用了該結構中的段寄存器DS和ES。調用時根據它們的值設置DS和ES,同時把DS和ES原來的值保存在這個結構中,返回時再恢復DS和ES為原來的值,這就允許程序使用遠指針或大數據編譯模式。

該函數置全局變量_doserrno等於寄存器AX中的值,其返回值也等於AX中的值。

注3:向寄存器傳遞入口信息

輸入指針名.x.寄存器名=要賦的值(入口信息);

注4:調用int86x後得接受出口信息

變量名=輸出指針名.x.寄存器名

intdos()通用dos中斷接口函數

原形:int intdos(inregs,outregs)

union REGS *inregs;//調用時的各寄存器的值

union REGS *outregs;//返回寄存器的值

功能:產生DOS軟中斷

注意:如果需要功能號,則裝入AH;如果需要子功能號,則裝入AL。

頭文件:dos.h

intdosx()通用dos中斷接口函數

原形:int intdosx(inregs,outregs,segregs)

union REGS *inregs;調用時的各寄存器的值

union REGS *outregs;返回寄存器的值

struct SREGS *seregs;調用時的段寄存器的值(還設置返回時的值)

功能:產生DOS軟中斷

頭文件:dos.h

intr()執行8086軟中斷函數(改變軟中斷接口函數)

原形:void intr(int intno,struct REGPACK *preg)

調用方式:intr(中斷號,&結構變量名)

注1:結構REGPACK定義如下

  struct REGPACK
   {
   unsigned r_ax,r_bx,r_cx,r_dx;
   unsigned r_bp,r_si,r_di,r_ds,r_es,r_flag;}

注2:使用時先定義一個結構變量

struct REGPACK 結構變量名;

注3:入口和出口用同一個結構變量來傳遞寄存器的值。

結構變量名.r_ax=要賦的值;

......

intr(中斷號,&結構變量名);

某變量=結構變量名.r_ax;

頭文件:dos.h

itoa()把整形數轉換為字符串的函數

原形:char *itoa(int value,char *string,int radix)

功能:把value的值轉換為以NULL結束的字符串,並把結果存在string中。radix是轉換的基數值,在2到36之間。分配給string的空間必須可容納返回的所有字節(最多17字節)。

返回值:指向string的指針

頭文件:stdlib.h

kbhit()檢查當前按下的鍵的函數

原形:int kbhit(void)

功能:檢查按下的鍵是否有效,若有效則可用getch()或getche()讀取。

返回值:如果按鍵有效,返回一非零值,否則返回0。

頭文件:conio.h

keep()駐留並退出函數

原形:void keep(unsigned char status,unsigned size)

功能:用於安裝一個TSR程序(使用DOS功能調用0x31)。出口狀態設置為在status中的值,程序占用存儲空間為size,並釋放內存的其余部分。

頭文件:dos.h

log()

原形∶double log(double num)

功能∶求num的自然對數值

頭文件∶math.h

log10()

原形∶double log10(double num)

功能∶求num以10為底的對數值

頭文件∶math.h

_lrotl()將一個無符號長整形數左循環移位的函數

原形:unsigned long _lrotl(unsigned long value,int count)

功能:將value向左循環移動count位。

返回值:將value向左循環移動count位後的值。

頭文件:stdlib.h

_lrotr()將一個無符號長整形數右循環移位的函數

原形:unsigned long _lrotr(unsigned long value,int count)

功能:將value向右循環移動count位。

返回值:將value向右循環移動count位後的值。

頭文件:stdlib.h

lseek()移動文件指針函數

原形:long lseek(int handle,long offset,int fromwhere)

handle=open()函數的返回值(文件句柄);

fromwhere=文件位置

(SEEK_SET(0)從文件頭位置;SEEK_CUR(1)從當前文件指針位置;SEEK_END(2)從文件結尾位置)

功能:把文件指針移動到fromwhere所指的地址加上offset新位置的偏移上。

頭文件:io.h

返回值:指針新位置的偏移量(相對於文件開始處),出錯時返回-1L。

ltoa()把長整形數轉換為字符串的函數

原形:char *ltoa(long value,char *string,int radix)

功能:把value的值轉換為以NULL結束的字符串,並把結果存在string中。radix是轉換的基數值,在2到36之間。分配給string的空間必須可容納返回的所有字節(最多33字節)。

返回值:指向string的指針

頭文件:stdlib.h

malloc()分配內存函數

原形:void *malloc(size_t size)

功能:從堆中分配大小為size字節的塊。win32也適用。

返回值:返回新分配內存的地址,若無足夠內存,返回NULL。

頭文件:alloc.h、stdlib.h

mkdir()創建目錄函數

原形:int mkdir(const char *path)

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

頭文件:dir.h

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

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

原形:char *mktemp(char *template)

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

頭文件:dir.h

MK_FP()設置一個遠指針的宏

原形:void far *MK_FP(unsigned seg,unsigned ofs)

功能:通過段值(seg)和偏移量(ofs)建立一個遠指針

返回值:遠指針

頭文件:dos.h

movedata()拷貝數據函數

原形:void movedata(unsigned srcseg,unsigned srcoff,unsigned dstseg,unsigned dstoff,size_t n)

功能:從原地址(srcseg:srcoff)拷貝n個字節的數據到目標地址(dstseg:dstoff)。

頭文件:mem.h、string.h

_open()打開一個文件進行讀寫的函數

原形:int _open(path,oflags)

char *path;//已建立文件的路徑名

int oflags;//方式

功能:打開由path指定的文件,返回文件的句柄

返回值:0(正常結束);-1(錯誤)

頭文件:fcntl.h、io.h

open()打開文件進行讀寫的函數

原形:int open(const char *path,int access[,unsigned mode])

使用方法:文件句柄=open("文件名",打開模式|打開模式);

功能:打開path指定的文件,根據access指定的模式值讀寫。

access模式:

O_RDONLY 以只讀方式打開

O_WRONLY 以只寫方式打開

O_RDOWR  以讀寫方式打開

以上標志只能使用一個,以下可以用|組合使用

O_NDELAY

O_APPEND 若置位,每次寫操作前都使文件指針指到文件末尾

O_CREAT  若文件不存在則創建

O_TRUNC  若文件已存在,則將文件長度截為0

O_EXCL  只和O_CREAT一起使用,若文件已經存在,返回錯誤代碼

O_BINARY 以二進制方式打開

O_TEXT  以文本方式打開

如果使用了O_CREAT方式,則需要提供參數mode

(S_IWRITE可寫;S_IREAD可讀;S_IREAD|S_IWRITE可讀寫)

返回值:文件句柄(成功時);-1(失敗時)。

成功時,文件指針指向文件頭。

頭文件:fcntl.h、io.h

outport()輸出一個字到端口中的函數

原形:void outport(int portid,int value)

調用方式:outport(0x端口號,要輸出的字);

功能:往指定端口地址輸出一個字。

頭文件:dos.h

outportb()輸出一個字節到端口中的函數

原形:void outportb(int portid,unsigned char value)

調用方式:outportb(0x端口號,要輸出的字節);

功能:往指定端口地址輸出一個字節。

附:PC I/O地址分配

PC只用了10位地址線(A0-A9)進行譯碼,其尋址的范圍為0H-3FFH,共有1024個I/O地址。這1024個地址中前半段(A9=0,范圍為0H-1FFH)是屬於主機板I/O譯碼,後半段(A9=1,范圍為200H-3FFH)則是用來擴展插槽上的I/O譯碼用。

  I/O端口功能表
   ———————————————————————————
   I/O地址 功能、用途
   ———————————————————————————
   0    DMA通道0,內存地址寄存器(DMA控制器1(8237))
   1    DMA通道0, 傳輸計數寄存器
   2    DMA通道1,內存地址寄存器
   3    DMA通道1, 傳輸計數寄存器
   4    DMA通道2,內存地址寄存器
   5    DMA通道2, 傳輸計數寄存器
   6    DMA通道3,內存地址寄存器
   7    DMA通道3, 傳輸計數寄存器
   8    DMA通道0-3的狀態寄存器
   AH    DMA通道0-3的屏蔽寄存器
   BH    DMA通道0-3的方式寄存器
   CH    DMA清除字節指針
   DH    DMA主清除字節
   EH    DMA通道0-3的清屏蔽寄存器
   FH    DMA通道0-3的寫屏蔽寄存器
   19H   DMA起始寄存器
   20H-3FH 可編程中斷控制器1(8259)使用
   40H   可編程中斷計時器(8253)使用,讀/寫計數器0
   41H   可編程中斷計時器寄存器
   42H   可編程中斷計時器雜項寄存器
   43H   可編程中斷計時器,控制字寄存器
   44H   可編程中斷計時器,雜項寄存器(AT)
   47H   可編程中斷計時器,計數器0的控制字寄存器
   48H-5FH 可編程中斷計時器使用
   60H-61H 鍵盤輸入數據緩沖區
   61H   AT:8042鍵盤控制寄存器/XT:8255輸出寄存器
   62H   8255輸入寄存器
   63H   8255命令方式寄存器
   64H   8042鍵盤輸入緩沖區/8042狀態
   65H-6FH 8255/8042專用
   70H   CMOS RAM地址寄存器
   71H   CMOS RAM數據寄存器
   80H   生產測試端口
   81H   DMA通道2,頁表地址寄存器
   82H   DMA通道3,頁表地址寄存器
   83H   DMA通道1,頁表地址寄存器
   87H   DMA通道0,頁表地址寄存器
   89H   DMA通道6,頁表地址寄存器
   8AH   DMA通道7,頁表地址寄存器
   8BH   DMA通道5,頁表地址寄存器
   8FH   DMA通道4,頁表地址寄存器
   93H-9FH DMA控制器專用
   A0H   NM1屏蔽寄存器/可編程中斷控制器2
   A1H   可編程中斷控制器2屏蔽
   C0H   DMA通道0,內存地址寄存器(DMA控制器2(8237))
   C2H   DMA通道0, 傳輸計數寄存器
   C4H   DMA通道1,內存地址寄存器
   C6H   DMA通道1, 傳輸計數寄存器
   C8H   DMA通道2,內存地址寄存器
   CAH   DMA通道2, 傳輸計數寄存器
   CCH   DMA通道3,內存地址寄存器
   CEH   DMA通道3, 傳輸計數寄存器
   D0H   DMA狀態寄存器
   D2H   DMA寫請求寄存器
   D4H   DMA屏蔽寄存器
   D6H   DMA方式寄存器
   D8H   DMA清除字節指針
   DAH   DMA主清
   DCH   DMA清屏蔽寄存器
   DEH   DMA寫屏蔽寄存器
   DFH-EFH 保留
   F0H-FFH 協處理器使用
   100H-16FH保留
   170H   1號硬盤數據寄存器
   171H   1號硬盤錯誤寄存器
   172H   1號硬盤數據扇區計數
   173H   1號硬盤扇區數
   174H   1號硬盤柱面(低字節)
   175H   1號硬盤柱面(高字節)
   176H   1號硬盤驅動器/磁頭寄存器
   177H   1號硬盤狀態寄存器
   1F0H   0號硬盤數據寄存器
   1F1H   0號硬盤錯誤寄存器
   1F2H   0號硬盤數據扇區計數
   1F3H   0號硬盤扇區數
   1F4H   0號硬盤柱面(低字節)
   1F5H   0號硬盤柱面(高字節)
   1F6H   0號硬盤驅動器/磁頭寄存器
   1F7H   0號硬盤狀態寄存器
   1F9H-1FFH保留
   200H-20FH游戲控制端口
   210H-21FH擴展單元
   278H   3號並行口,數據端口
   279H   3號並行口,狀態端口
   27AH   3號並行口,控制端口
   2B0H-2DFH保留
   2E0H   EGA/VGA使用
   2E1H   GPIP(0號適配器)
   2E2H   數據獲取(0號適配器)
   2E3H   數據獲取(1號適配器)
   2E4H-2F7H保留
   2F8H   2號串行口,發送/保持寄存器(RS232接口卡2)
   2F9H   2號串行口,中斷有效寄存器
   2FAH   2號串行口,中斷ID寄存器
   2FBH   2號串行口,線控制寄存器
   2FCH   2號串行口,調制解調控制寄存器
   2FDH   2號串行口,線狀態寄存器
   2FEH   2號串行口,調制解調狀態寄存器
   2FFH   保留
   300H-31FH原形卡
   320H   硬盤適配器寄存器
   322H   硬盤適配器控制/狀態寄存器
   324H   硬盤適配器提示/中斷狀態寄存器
   325H-347H保留
   348H-357H DCA3278
   366H-36FH PC網絡
   372H    軟盤適配器數據輸出/狀態寄存器
   375H-376H 軟盤適配器數據寄存器
   377H    軟盤適配器數據輸入寄存器
   378H    2號並行口,數據端口
   379H    2號並行口,狀態端口
   37AH    2號並行口,控制端口
   380H-38FH SDLC及BSC通訊
   390H-393H Cluster適配器0
   3A0H-3AFH BSC通訊
   3B0H-3B H MDA視頻寄存器
   3BCH    1號並行口,數據端口
   3BDH    1號並行口,狀態端口
   3BEH    1號並行口,控制端口
   3C0H-3CFH EGA/VGA視頻寄存器
   3D0H-3D7H CGA視頻寄存器
   3F0H-3F7H 軟盤控制器寄存器
   3F8H    1號串行口,發送/保持寄存器(RS232接口卡1)
   3F9H    1號串行口,中斷有效寄存器
   3FAH    1號串行口,中斷ID寄存器
   3FBH    1號串行口,線控制寄存器
   3FCH    1號串行口,調制解調控制寄存器
   3FDH    1號串行口,線狀態寄存器
   3FEH    1號串行口,調制解調狀態寄存器
   3FFH    保留
   —————————————————————————-

outtextxy()在指定位置顯示一字符串的函數

原形:void far outtextxy(int x,int y,char far *textstring)

功能:按照當前對齊方式和當前字體、方向、大小在視區中給定位置顯示一文本字符串。

注意:用textwidth和textheight函數決定字符串的尺寸大小。

頭文件:graphics.h

peek()返回指定內存中字的函數

原形:int peek(int seg,unsigned offset)

功能:返回地址為seg:offset的字單元的值

頭文件:dos.h

peekb()返回指定內存中字節的函數

原形:char peekb(int seg,unsigned offset)

功能:返回地址為seg:offset的字節單元的值

poke()在指定的內存中存儲一個字的函數

原形:void poke(int seg,unsigned offset,int word)

功能:把word的16位值放到地址為seg:offset的字單元中

pokeb()在指定的內存中存儲一個字節的函數

原形:void pokeb(int seg,unsigned offset,int byte)

功能:把byte的8位值放到地址為seg:offset的字節單元中

pow()

原形∶double pow(double b,double exp)

功能∶求以b為底的exp次冪的值

頭文件∶math.h

printf()寫格式化輸出到stdout的函數

使用方式:例

①printf("%f",實型變量);

②printf("%f",(*函數指針名)(參數));

③printf("%c",字符變量);

④printf("%c",*字符串變量名即字符串地址);

只顯示字符串的第一個字符。

⑤printf("%s",字符串數組名即字符串數組地址);

⑥printf("%-10s",字符串變量名);

顯示字符串時限定十位(不足則補空格),並靠左端對齊。

⑦printf("%s",*二級指針變量);

⑧printf("字符串%05d ",整型變量);

先顯示字符串,然後顯示整型變量的值(限五位,不足則補零),最後換行。

注:

1.① 需先定義 float 實型變量;

② 需先定義 float (*函數指針名)(); 並有相應的函數

③ 需先定義 char 字符變量='單個字符';

④⑥需先定義 char *字符串變量名; 並賦值

⑤ 需先定義 char 字符串數組名[]="字符串";

⑦ 需先定義 char **二級指針變量

2.其它轉換字符(在%後)有

① o 整型數以無符號的八進制形式輸出

② x 整型數和偽變量以無符號的十六進制形式輸出

③ u 整型數以無符號的十進制形式輸出

④ e 浮點數或雙精度浮點數以指數形式輸出

⑤ g 選用e或f格式中輸出位數較短的形式

⑥ p 以無符號的十六進制形式輸出變量的地址。若要輸出函數的地址,遠指針用Fp;近指針用Np。

putch()向屏幕輸出字符的函數

使用方式:

① putch('轉義字符');

② putch('單個字符');

③ putch(字符變量);

注:③需先定義 char 字符變量='單個字符';

頭文件:conio.h

putchar()在stdout上輸出字符的宏

原形:int putchar(int c)

返回值:成功返回字符c,失敗返回EOF。

頭文件:stdio.h

putenv()將字符串放入當前環境中的函數

原形:int putenv(const char *name)

用法例:putenv("PATH=C:BTC");

功能:把字符串name加到當前程序運行的環境中。當程序結束後,原環境將得到恢復。

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

頭文件:stdlib.h

putimage()重新寫屏函數(輸出一個位圖象到圖形屏幕上的函數)

功能:將用getimage()函數儲存在buf 所指向的內存區域的圖形輸出到屏幕上。

原形:

void far putimage(int left,int top,void far *buf,int op)

其中op的值決定了圖形以何種方式寫到屏幕上。

COPY_PUT 或0 原樣復制

XOR_PUT 或1 與屏幕圖形取“異或”後寫入

OR_PUT 或2 與屏幕圖形取“或”後寫入

AND_PUT 或3 與屏幕圖形取“與”後寫入

NOT_PUT 或4 復制原圖形的“逆”

使用不同的方式將圖形寫到屏幕上,可以實現圖形變換。例如,采用異或方式在原始位置重寫,那麼,原圖將消失。 如果再使用復制方式(COPY_PUT)在一個新的地方重現該圖形,就產生了圖形的移動。

頭文件:graphics.h

putpixel()寫像素點函數

原形:void far putpixel(int x,int y,int color)

頭文件:graphics.h

puts()輸出一字符串到stdout(標准輸出)的函數

使用方式:

① puts("字符串");

② puts(字符串變量名即字符串變量的地址)

注:②需先定義 char *字符串變量名="字符串";

頭文件:stdio.h

_read()讀文件函數

原形:int _read(handle,buffer,count)

int handle;//文件句柄

void *buffer;//存放讀出數據的緩沖區

unsigned count;//一次讀出的字節數

功能:從由handle指定的文件中讀取由count指定字節數的數據到buffer

返回值:0-0xfffe(實際讀出的字節數);-1(錯誤)

頭文件:io.h

read()讀文件函數

原形:int read(int handle,void *buf,unsigned len)

功能:從與handle(從creat、open、dup或dup2調用中得到的句柄)相聯的文件中讀取len字節到由buf所指的緩沖區中。對於以文本方式打開的文件,read刪除讀入數據中的回車符。當讀到Ctrl-Z字符時返回文件結束。對於磁盤文件,read從當前文件指針處開始讀取數據。在讀操作完成後,文件指針增量為讀入的字節數。對於設備,直接從設備中讀字節。

返回值:讀入緩沖區的字節數,如果文件以文本方式打開,則不包括回車符和Ctrl-Z字符。

頭文件:io.h

realloc()重新分配內存函數

原形:void *realloc(void *block,size_t size)

block指向用malloc、calloc或realloc已得到的內存。

size是重新分配的字節。

返回值:重分配的塊地址。若不能重分配,則返回NULL。

頭文件:stdlib.h

rectangle()畫一個矩形的函數

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

功能:用當前線性、寬度和畫線顏色繪制一個矩形。

頭文件:graphics.h

remove()刪除一個文件的函數

原形:int remove(const char *filename)

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

頭文件:stdio.h

rename()文件改名函數

原形:int rename(const char *oldname,const char *newname)

注意:如果newname中包含了一個驅動器指示符,它必須與oldname中給出的指示符相同。oldname和newname中的目錄可以不同,因此rename函數把文件從一個目錄移到另一個目錄。不允許使用通配符。

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

restorecrtmode()恢復屏幕視頻模式為調用initgraph前的設置的函數

原形:void far restorecrtmode(void)

頭文件:graphics.h

rmdir()刪除目錄函數

原形:int rmdir(const char *path)

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

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

頭文件:dir.h

_rotl()將一個無符號整形數左循環移位的函數

原形:unsigned _rotl(unsigned value,int count)

功能:將value向左循環移動count位。

返回值:將value向左循環移動count位後的值。

頭文件:stdlib.h

_rotr()將一個無符號整形數右循環移位的函數

原形:unsigned _rotr(unsigned value,int count)

功能:將value向右循環移動count位。

返回值:將value向右循環移動count位後的值。

頭文件:stdlib.h

scanf()格式化輸入函數

使用格式:scanf("輸入格式",輸入項系列)

① scanf("%f",&實型變量)

② scanf("%c",&字符變量)

③ scanf("%s",字符串變量)

④ scanf("%d",&整型變量)

注:需先定義以上各種變量如 char *字符串變量;

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=堆棧段寄存器的值;

setactivepage()設置圖形輸出活動頁的函數

原形:void far setactivepage(int page)

功能:使page成為當前活動的圖形頁,其後所有的圖形輸出操作都在page圖形頁進行。活動圖形頁可以不是在屏幕上看到的頁。

頭文件:graphics.h

setcolor()設置當前要畫的線顏色的函數

原形:void far setcolor(int color)

頭文件:graphics.h

注意:顏色值(EGA/VGA)

0-BLACK;   1-BLUE;    2-GREEN;

3-CYAN;    4-RED;    5-MAGENTA;

6-BROWN;   7-LIGHTGRAY; 8-DARKGRAY;

9-LIGHTBLUE; 10-LIGHTGREEN;11-LIGHTCYAN;

12-LIGHTRED; 13-LIGHTMAGENTA;

14-YELLOW;  15-WHITE

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

原形:int setdisk(int drive)

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

頭文件:dir.h

setgraphmode()將系統設置成圖形模式並清屏的函數

原形:void far setgraphmode(int mode)

功能:選擇一個不同於調用initgraph()函數時所設置的缺省的圖形模式。

返回值:如果給了一個對當前驅動程序來說無效的模式,則返回-10。

頭文件:graphics.h

setlinestyle()設置當前畫線寬度和類型的函數

原形:

void far setlinestyle(int linestyle,unsigned upattern,int thickness)

其中:linestyle=0為實線;1為點線;2為中心線;3為破折線;4為用戶定義。

thickness=1為一個像素寬;3為三個像素寬。

只有當linestyle=4時,upattern才起作用。

頭文件:graphics.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()。

setvisualpage()設置可見的圖形頁號的函數

原形:void far setvisualpage(int page)

功能:使得page成為可見的圖形頁。

頭文件:graphics.h

sin()

原形∶double sin(double arg)

功能∶計算arg(弧度)的正弦值

頭文件∶math.h

sprintf()格式化輸出到數組的函數

原形∶int sprintf(buf,format,arg_list)

其中char *buf;

功能∶把arg_list參量的值按format的格式輸出到buf中。

例∶sprintf(buffer,"相對扇區號∶%s(其中∶柱面號為%d/磁頭號為%d/扇區號為%d)",string,cyls,head,sector);

其中char buffer[100];

char *string="  ";

int cyls,head,sector;

返回值∶實際寫入數組的字符個數。

頭文件∶stdio.h

strcat()

原形∶char *strcat(str1,str2)

功能∶把str2所指的字符串連接到str1所指的字符串後。

返回值∶指向str1的指針。

tan()

原形∶double tan(double arg)

功能∶計算arg(弧度)的正切值

頭文件∶math.h

_write()寫文件函數

原形:int _write(handle,buffer,count)

int handle;//文件的句柄

void *buffer;//存放數據的緩沖區

unsigned count;//寫入的字節數

功能:從由buffer指定的緩沖區寫入由count指定字節數的數據到由handle指定的文件。返回實際寫入的字節數。

返回值:0-0xfffe(實際寫入的字節數);-1(錯誤)

頭文件:io.h

write()寫文件函數

原形:int write(int handle,char *buf,unsigned len)

用法:write(文件句柄,緩沖區地址,緩沖區字節長度<最大65534>);

功能:將緩沖區的數據寫入與handle相聯的文件或設備中,handle是從creat、open、dup或dup2調用中得到的文件句柄。對於磁盤或磁盤文件,寫操作從當前文件指針處開始,對於用O_APPEND選項打開的文件,寫數據之前,文件指針指向EOF;對於設備,字節被直接傳送到設備中;

返回值:實際寫入的字節數(不包括回車符),出錯時返回-1。

頭文件:io.h

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