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

更多內容請看C/C++進階技術文檔專題,或

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]開始,以空字符(\0)結尾。

返回值:指向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_IREADS_IWRITE 可讀可寫

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

頭文件:io.h、sys\stat.h

clock()

原形∶long clock(void)

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

頭文件∶time.h

更多內容請看C/C++進階技術文檔專題,或

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

更多內容請看C/C++進階技術文檔專題,或

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)

更多內容請看C/C++進階技術文檔專題,或

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\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

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

更多內容請看C/C++進階技術文檔專題,或

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

更多內容請看C/C++進階技術文檔專題,或

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

更多內容請看C/C++進階技術文檔專題,或

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

更多內容請看C/C++進階技術文檔專題,或

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 示意圖

structstruct

WORDREGSBYTEREGS

┌ ┌───────┬──────┐──┬── ┐

│ ││ 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

更多內容請看C/C++進階技術文檔專題,或

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

更多內容請看C/C++進階技術文檔專題,或

_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_IREADS_IWRITE可讀寫)

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

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

頭文件:fcntl.h、io.h

更多內容請看C/C++進階技術文檔專題,或

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地址功能、用途

———————————————————————————

0DMA通道0,內存地址寄存器(DMA控制器1(8237))

1DMA通道0, 傳輸計數寄存器

2DMA通道1,內存地址寄存器

3DMA通道1, 傳輸計數寄存器

4DMA通道2,內存地址寄存器

5DMA通道2, 傳輸計數寄存器

6DMA通道3,內存地址寄存器

7DMA通道3, 傳輸計數寄存器

8DMA通道0-3的狀態寄存器

AH DMA通道0-3的屏蔽寄存器

BH DMA通道0-3的方式寄存器

CH DMA清除字節指針

DH DMA主清除字節

EH DMA通道0-3的清屏蔽寄存器

FH DMA通道0-3的寫屏蔽寄存器

19HDMA起始寄存器

20H-3FH可編程中斷控制器1(8259)使用

40H可編程中斷計時器(8253)使用,讀/寫計數器0

41H可編程中斷計時器寄存器

42H可編程中斷計時器雜項寄存器

43H可編程中斷計時器,控制字寄存器

44H可編程中斷計時器,雜項寄存器(AT)

47H可編程中斷計時器,計數器0的控制字寄存器

48H-5FH可編程中斷計時器使用

60H-61H鍵盤輸入數據緩沖區

61HAT:8042鍵盤控制寄存器/XT:8255輸出寄存器

62H8255輸入寄存器

63H8255命令方式寄存器

64H8042鍵盤輸入緩沖區/8042狀態

65H-6FH8255/8042專用

70HCMOS RAM地址寄存器

71HCMOS RAM數據寄存器

80H生産測試端口

81HDMA通道2,頁表地址寄存器

82HDMA通道3,頁表地址寄存器

83HDMA通道1,頁表地址寄存器

87HDMA通道0,頁表地址寄存器

89HDMA通道6,頁表地址寄存器

8AHDMA通道7,頁表地址寄存器

8BHDMA通道5,頁表地址寄存器

8FHDMA通道4,頁表地址寄存器

93H-9FHDMA控制器專用

A0HNM1屏蔽寄存器/可編程中斷控制器2

A1H可編程中斷控制器2屏蔽

C0HDMA通道0,內存地址寄存器(DMA控制器2(8237))

C2HDMA通道0, 傳輸計數寄存器

C4HDMA通道1,內存地址寄存器

C6HDMA通道1, 傳輸計數寄存器

C8HDMA通道2,內存地址寄存器

CAHDMA通道2, 傳輸計數寄存器

CCHDMA通道3,內存地址寄存器

CEHDMA通道3, 傳輸計數寄存器

D0HDMA狀態寄存器

D2HDMA寫請求寄存器

D4HDMA屏蔽寄存器

D6HDMA方式寄存器

D8HDMA清除字節指針

DAHDMA主清

DCHDMA清屏蔽寄存器

DEHDMA寫屏蔽寄存器

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-357HDCA3278

366H-36FHPC網絡

372H 軟盤適配器數據輸出/狀態寄存器

375H-376H軟盤適配器數據寄存器

377H 軟盤適配器數據輸入寄存器

378H 2號並行口,數據端口

379H 2號並行口,狀態端口

37AH 2號並行口,控制端口

380H-38FHSDLC及BSC通訊

390H-393HCluster適配器0

3A0H-3AFHBSC通訊

3B0H-3B HMDA視頻寄存器

3BCH 1號並行口,數據端口

3BDH 1號並行口,狀態端口

3BEH 1號並行口,控制端口

3C0H-3CFHEGA/VGA視頻寄存器

3D0H-3D7HCGA視頻寄存器

3F0H-3F7H軟盤控制器寄存器

3F8H 1號串行口,發送/保持寄存器(RS232接口卡1)

3F9H 1號串行口,中斷有效寄存器

3FAH 1號串行口,中斷ID寄存器

3FBH 1號串行口,線控制寄存器

3FCH 1號串行口,調制解調控制寄存器

3FDH 1號串行口,線狀態寄存器

3FEH 1號串行口,調制解調狀態寄存器

3FFH 保留

—————————————————————————-

更多內容請看C/C++進階技術文檔專題,或

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\n",整型變量);

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

注:

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

更多內容請看C/C++進階技術文檔專題,或

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

原形:int putenv(const char *name)

用法例:putenv("PATH=C:\B\TC");

功能:把字符串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

更多內容請看C/C++進階技術文檔專題,或

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

更多內容請看C/C++進階技術文檔專題,或

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

更多內容請看C/C++進階技術文檔專題,或

_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

更多內容請看C/C++進階技術文檔專題,或

C語言編程常見問題解答之常用函數的包含文件(2)
  execve process.h 進程控制子程序 裝入並運行其它程序execvp process.h 進程控制子程序 裝入並運行其它程序execvpe process.h 進程控制子程序 裝入...查看完整版>>C語言編程常見問題解答之常用函數的包含文件(2)
 
C語言編程常見問題解答之常用函數的包含文件(3)
函數 包含 類別 功能longjmp setjmp.h 雜類子程序 執行非局部跳轉lowvideo conio.h 文本窗口顯示子程 選擇低亮度字符lsearch ...查看完整版>>C語言編程常見問題解答之常用函數的包含文件(3)
 
C語言編程常見問題解答之常用函數的包含文件(1)
函數 包含 類別 功能_atold math.h 數學子程序 把字符串轉換爲浮點數_beginthread process.h 進程控制子程序 啓動執行一個新線程_bios_...查看完整版>>C語言編程常見問題解答之常用函數的包含文件(1)
 
關于S700數據線的用途及使用方法
用途:  1.可以給手機充電 2.使用同步軟件(S700的同步軟件包括:電話簿管理\日曆管理\信息管理\相片簿的管理\音律即鈴聲管理\還有與電腦的文件互傳功能) 3.做爲讀卡器使用同步軟件的使用:  首先,需要安裝S700-P...查看完整版>>關于S700數據線的用途及使用方法
 
Oracle 9i SYS_CONTEXT函數的使用方法
此函數在寫一些觸發器和函數的時候非常有用處。 用法: SELECT sys_context('USERENV', '') FROM dual; 第二個參數的可選值: AUTHENTICATION_DATA Data being used to authenticate the login user. For X.503 cert...查看完整版>>Oracle 9i SYS_CONTEXT函數的使用方法
 
教你快速掌握"patindex"函數的使用方法
patindex函數的用法: 語法格式:PATINDEX ( '%pattern%' , expression ) 返回pattern字符串在表達式expression裏第一次出現的位置,起始值從1開始算。 pattern字符串在expression表達式裏沒找就返回0,對所有有效的...查看完整版>>教你快速掌握"patindex"函數的使用方法
 
講解SQL Server數據庫中函數的使用方法
本文主要主要講解了SQL Server數據庫中函數的兩種用法,具體內容請參考下文: ◆1. 由于update裏不能用存儲過程,並且由于根據更新表的某些字段還要進行計算。所以很多人采用的是遊標的方法,在這裏我們可以用函數的...查看完整版>>講解SQL Server數據庫中函數的使用方法
 
Oracle數據庫DECODE函數的作用及使用方法
DECODE函數的作用:它可以將輸入數值與函數中的參數列表相比較,根據輸入值返回一個對應值。函數的參數列表是由若幹數值及其對應結果值組成的若幹序偶形式。當然,如果未能與任何一個實參序偶匹配成功,則函數也有默...查看完整版>>Oracle數據庫DECODE函數的作用及使用方法
 
Oracle數據庫Decode()函數的使用方法
DECODE函數的作用:它可以將輸入數值與函數中的參數列表相比較,根據輸入值返回一個對應值。函數的參數列表是由若幹數值及其對應結果值組成的若幹序偶形式。當然,如果未能與任何一個實參序偶匹配成功,則函數也有默...查看完整版>>Oracle數據庫Decode()函數的使用方法
 
 
回到王朝網路移動版首頁