版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、c語言的常用庫函數(shù)函數(shù)1。absread()讀磁盤絕對扇區(qū)函數(shù)原形:intabsread(intdrive,intnum,intsectnum,void*buf)功能:從drive指定的驅(qū)動器磁盤上,sectnum指定的邏輯扇區(qū)號開始讀取(通過DOS中斷0 x25讀取)num個(最多64K個)扇區(qū)的內(nèi)容,儲存于buf所指的緩沖區(qū)中。參數(shù):drive=0對應(yīng)A盤,drive=1對應(yīng)B盤。返回值:0:成功;-1:失敗。頭文件:dos.h函數(shù)2。abswrite()寫磁盤絕對扇區(qū)函數(shù)原形:intabswrite(intdrive,intnsects,intlsect,void*buffer)driv
2、e=0(A驅(qū)動器)、1(B驅(qū)動器)、nsects=要寫的扇區(qū)數(shù)(最多64K個);lsect=起始邏輯扇區(qū)號;buffer=要寫入數(shù)據(jù)的內(nèi)存起始地址。功能:將指定內(nèi)容寫入(調(diào)用DOS中斷0 x26)磁盤上的指定扇區(qū),即使寫入的地方是磁盤的邏輯結(jié)構(gòu)、文件、FAT表和目錄結(jié)構(gòu)所在的扇區(qū),也照常進行。返回值:0:成功;-1:失敗。頭文件:dos.h函數(shù)3。atof()將字符串轉(zhuǎn)換成浮點數(shù)的函數(shù)原形:doubleatof(constchar*s)功能:把s所指向的字符串轉(zhuǎn)換成double類型。s格式為:符號數(shù)字?jǐn)?shù)字E符號數(shù)字返回值:字符串的轉(zhuǎn)換值。頭文件:math.h、stdlib.h函數(shù)4。atoi(
3、)將字符串轉(zhuǎn)換成整型數(shù)的函數(shù)原形:intatoi(constchar*s)功能:把s所指向的字符串轉(zhuǎn)換成int類型。s格式為:符號數(shù)字返回值:字符串的轉(zhuǎn)換值。若出錯則返回0。頭文件:stdlib.h函數(shù)5。atol()將字符串轉(zhuǎn)換成長整型數(shù)的函數(shù)原形:longatol(constchar*s)功能:把s所指向的字符串轉(zhuǎn)換成longint類型。s格式為:符號數(shù)字返回值:字符串的轉(zhuǎn)換值。若出錯則返回0。頭文件:stdlib.h函數(shù)6。bcd()把一個數(shù)轉(zhuǎn)換成對應(yīng)的BCD碼的函數(shù)原形:bcdbcd(intx)bcdbcd(doublex)bcdbcd(doublex,intdecimals)注意:B
4、CD碼的精度可達17位。參數(shù)decimals是可選的,用來指定轉(zhuǎn)換后小數(shù)點后的位數(shù)。頭文件:bcd.h函數(shù)7。bdos()原形:intbdos(intfnum,unsigneddx,unsignedal)其中fnum是系統(tǒng)調(diào)用號;dx是傳給寄存器DX的值;al是傳給寄存器AL的值;功能:DOS系統(tǒng)調(diào)用(INT21H)返回值:AX中的值函數(shù)8。biosdisk()調(diào)用BIOS磁盤驅(qū)動程序函數(shù)原形:charbiosdisk(intcmd,intdrive,inthead,inttrack,intsector,intnsects,void*buffer)功能:使用中斷0 x13,直接調(diào)用BIOS進行
5、磁盤操作參數(shù):(1)cmd:數(shù)據(jù)以每扇區(qū)512字節(jié)的格式讀入buffer,起始扇區(qū)由head、track和sector定,扇區(qū)數(shù)由nsects定。將buffer中的數(shù)據(jù)按每扇區(qū)512字節(jié)寫入磁盤。對扇區(qū)進行數(shù)據(jù)校驗。6-格式化一個磁盤并對化扇區(qū)設(shè)置化標(biāo)志。8-返回當(dāng)前驅(qū)動器參數(shù)在buffer的前4個字節(jié)中。長讀,每扇區(qū)讀入512字節(jié)加上額外的4個字節(jié)。長寫,每扇區(qū)寫入512字節(jié)加上額外的4個字節(jié)。drive:0-第一個軟驅(qū);1-第二個軟驅(qū);0 x80-第一個硬驅(qū)head:磁頭track:磁道sector:扇區(qū)nsects:扇區(qū)數(shù)buffer:數(shù)據(jù)緩沖區(qū),定義為unsignedcharbuffe
6、r;返回值:0 x00-操作成功0 x01-錯誤命令0 x03-企圖寫具有寫保護的磁盤0 x07-驅(qū)動器參數(shù)設(shè)置錯誤0 x10-磁盤讀/CRC/ECC錯誤頭文件:bios.h注:對于硬盤主引導(dǎo)記錄扇區(qū)head=0,track=0,sector=1函數(shù)9。biosprint()調(diào)用BIOS打印機I/O接口的函數(shù)原形:intbiosprint(intcmd,intabyte,intport)功能:通過BIOS中斷0 x17在由參數(shù)port指定的打印機上完成各種打印機功能。port=0(LPT1)=1(LPT2);cmd=0(打印字符abyte)1(初始化打印機端口)2(讀打印機狀態(tài));abyte=
7、0-255;返回值:打印機狀態(tài)位0(設(shè)備超時);位3(I/O出錯);位4(打印機已選擇);位5(沒紙);位6(打印機確認(rèn));位7(不忙)頭文件:bios.h函數(shù)10。calloc()分配內(nèi)存函數(shù)原形:void*calloc(size_tnitems,size_tsize)功能:在堆中分配一塊內(nèi)存,將該內(nèi)存的內(nèi)容全部清0。返回值:返回指向新分配內(nèi)存的指針??臻g不夠則返回NULL。頭文件:stdlib.h、calloc.h函數(shù)11。ceil()原形:doubleceil(doublenum)功能:求不小于num的最小雙精度整數(shù)頭文件:math.h函數(shù)12。cgets()讀字符串函數(shù)原形:char*
8、cgets(char*str)功能:從控制臺讀入一個字符串,并將該字符串(和字符串長度)存入有str所指向的地址中。注意:在調(diào)用cgets之前,必須將要讀入的字符串最大長度存入str0中,返回時str1被設(shè)置為實際讀入的字符數(shù)。實際字符串內(nèi)容從str開始,以空字符(0)結(jié)尾。返回值:指向str2的指針。頭文件:conio.h函數(shù)13。chdir()改變當(dāng)前目錄的函數(shù)原形:intchdir(constchar*path)功能:把由path指定的目錄改為當(dāng)前目錄。path參數(shù)中可以指定驅(qū)動器號,如如a:ddd,但只是改變該驅(qū)動器上的當(dāng)前目錄,對當(dāng)前活動驅(qū)動器上的當(dāng)前目錄無影響。返回值:0(成功);
9、-1(失敗)頭文件:dir.h函數(shù)14。_chmod()改變文件存取權(quán)限的函數(shù)原形:int_chmod(constchar*path,intfunc,intattrib)功能:讀取(func=0時)或設(shè)置(func=1時)DOS文件屬性。attrib=FA_RDONLY只讀attrib=FA_HIDDEN隱藏文件attrib=FA_SYSTEM系統(tǒng)文件attrib=FA_LABLE卷標(biāo)attrib=FA_DIREC目錄attrib=FA_ARCH檔案返回值:失敗時返回-1。成功時返回文件的屬性字節(jié),如果返回值&FA_RDONLY不等于0,則文件是只讀文件;頭文件:io.h、dos.h函數(shù)15。
10、chmod()改變文件存取權(quán)限的函數(shù)原形:intchmod(constchar*path,intamode)功能:根據(jù)amode的值,設(shè)置由path所指文件的存取權(quán)限。amode的值存取權(quán)限S_IWRITE允許寫S_IREAD允許讀(只讀)S_IREAD|S_IWRITE可讀可寫返回值:0(成功);-1(失敗)頭文件:io.h、sysstat.h函數(shù)16。clock()原形:longclock(void)功能:測得從程序開始到調(diào)用處處理機所用的時間頭文件:time.h函數(shù)17。close()關(guān)閉文件函數(shù)原形:intclose(inthandle)功能:關(guān)閉由文件句柄所指向的文件,句柄是調(diào)用_c
11、reat、creat、creatnew、creattemp、dup、dup2、_open或open時得到的。該函數(shù)并不在文件末尾寫一個Ctrl-Z字符,如果想用該字符結(jié)束文件,必須顯式地給出該字符。返回值:0(成功);-1(失敗)頭文件:io.h函數(shù)18。closegraph()關(guān)閉圖形函數(shù)原形:voidfarclosegraph(void)功能:釋放圖形系統(tǒng)分配的所有內(nèi)存,將屏幕恢復(fù)到調(diào)用initgraph之前的模式。頭文件:graphics.h函數(shù)19。cos()原形:doublecos(doublearg)功能:計算arg(弧度)的余弦值頭文件:math.h函數(shù)20。ctrlbrk()設(shè)
12、置ctrl-break處理程序的函數(shù)原形:voidctrlbrk(int(*handle)(void)功能:修改中斷向量0 x23,使用新的ctrl-break中斷處理函數(shù)。用法:ctrlbrk(函數(shù)名);先定義函數(shù):int函數(shù)名(void).頭文件:dos.h函數(shù)21。delay()暫停函數(shù)原形:voiddelay(unsignedmilliseconds)功能:暫停當(dāng)前所執(zhí)行的程序milliseconds毫秒。頭文件:dos.h函數(shù)22。disable()屏蔽中斷的宏原形:voiddisble(void)功能:屏蔽中斷,只允許從外部設(shè)備來的不可屏蔽中斷(NMI)。頭文件:dos.h函數(shù)23
13、。enable()開硬件中斷的宏原形:voidenable(void)功能:開放中斷,允許接受任何設(shè)備產(chǎn)生的中斷。頭文件:dos.h函數(shù)24。exec()加載并運行其它程序的函數(shù)族execl(),execle(),execlp(),execlpe(),execv(),execve(),execvp(),execvpe()原形:intexecl(char*path,char*arg0,*arg1,.,*argn,NULL)intexecle(char*path,char*arg0,*arg1,.,*argn,NULL,char*env)intexeclp(char*path,char*arg0,
14、*arg1,.,*argn,NULL)頭文件:alloc.h頭文件:alloc.hintexeclpe(char*path,char*arg0,*arg1,.,*argn,NULL,char*env)intexecv(char*path,char*argv)intexecve(char*path,char*argv,char*env)intexecvp(char*path,char*argv)intexecvpe(char*path,char*argv,char*env)其中,path是調(diào)用的子程序的文件名,在xec后面的后綴具有某種功能:p表示函數(shù)能夠在由DOS環(huán)境變量PATH的目錄中搜索子
15、進程文件,如果path中未指明文件所在目錄,函數(shù)將首先在當(dāng)前目錄中找,然后在DOS環(huán)境變量指定的目錄中找。l表示參數(shù)指針(argO,.,argn)按單獨參數(shù)傳送。當(dāng)預(yù)先知道要傳送的參數(shù)個數(shù)時,通常用帶后綴l的函數(shù)。v表示參數(shù)指針(argO,.,argn)按指針數(shù)組傳送。當(dāng)要傳送的參數(shù)可變時,使用帶后綴v的函數(shù)。e表示參數(shù)env可以傳送到子進程,該函數(shù)可用來修改子進程的環(huán)境。若無e后綴,子進程將繼承父進程的環(huán)境。注意:argO+.+argn,或arg0+.+argn的總長度必需小于128字節(jié)。當(dāng)調(diào)用exec函數(shù)時,原先已經(jīng)打開的文件在子進程中仍然是打開的。功能:加載并運行其它程序,調(diào)用時必須有足
16、夠的內(nèi)存空間用于加載和執(zhí)行子程序,子程序?qū)⒏采w父程序。頭文件:process.h函數(shù)25。farcalloc()從遠堆中分配內(nèi)存的函數(shù)原形:voidfar*farcalloc(unsignedlongnunits,unsignedlongunitsz)功能:從遠堆中為包含nunits個元素的數(shù)組分配內(nèi)存,每一區(qū)unitsz字節(jié)長。用法:fptr=farcalloc(數(shù)目,sizeof(char);先定義:charfar*fptr;注意:所有可用RAM能被分配;大于64K的塊能被分配;用遠指針存取該塊。微模式不能用。返回值:返回指向新分配塊的指針,若內(nèi)存不夠,則返回NULL。頭文件:alloc.
17、h函數(shù)26。farfree()從遠堆中釋放一塊已分配內(nèi)存的函數(shù)原形:voidfarfree(voidfar*block)頭文件:alloc.h函數(shù)27。farmalloc()從遠堆中分配內(nèi)存的函數(shù)原形:voidfar*farmalloc(unsignedlongnbytes)使用方式:fptr=farmalloc(字節(jié)數(shù));先定義charfar*fptr;功能:從遠堆中分配長nbytes字節(jié)的內(nèi)存。注意:所有可用RAM能被分配;大于64K的塊能被分配;用遠指針存取該塊。微模式不能用。返回值:返回指向新分配內(nèi)存的指針,若內(nèi)存不夠,則返回NULL。函數(shù)28。farrealloc()調(diào)整遠堆中已分配
18、塊的函數(shù)原形:voidfar*farrealloc(voidfar*oldblock,unsignedlongnbytes)返回值:返回調(diào)整后的新內(nèi)存地址。若不能重新分配,則返回NULL。頭文件:alloc.h函數(shù)29。fclose()關(guān)閉一個流函數(shù)原形:intfclose(FILE*stream)使用方式:fclose(文件指針名);其中文件指針名=fopen();功能:關(guān)閉指定的流,關(guān)閉前清除所有與stream相聯(lián)的緩沖區(qū),釋放系統(tǒng)分配的緩沖區(qū),但由setbuf設(shè)置的緩沖區(qū)不能自動釋放。返回值:0(成功);EOF(失敗)頭文件:stdio.h函數(shù)30。fcloseall()關(guān)閉打開的流的函
19、數(shù)原形:intfcloseall(void)功能:關(guān)閉所有打開的流,由stdin、stdout、stdprn、stderr和stdaux設(shè)置的流除外。返回值:關(guān)閉流的總數(shù)。如果發(fā)現(xiàn)錯誤則返回EOF。頭文件:stdio.h函數(shù)31。feof()檢查文件是否結(jié)束的函數(shù)原形:intfeof(FILE*fp)返回值:文件結(jié)束返回非0值,否則返回0。頭文件:stdio.h函數(shù)32。fgets()從流中讀取一字符串的函數(shù)原形:char*fgets(chars,intn,FILE*stream)使用格式:fgets(字符串指針,字符個數(shù),文件指針)功能:從輸入流stream中讀入字符存到s串中。當(dāng)讀了n-1
20、個字符或遇到換行符時,函數(shù)停止讀過程。fgets在s串尾保留換行字符。讀入的最后一個字符后面加一個空字符。返回值:成功時返回字符串參數(shù)s,出錯或遇到文件結(jié)束時,返回NULL。頭文件:stdio.h函數(shù)33。findfirst()函數(shù)和findnext()函數(shù)調(diào)用方式:整形數(shù)=findfirst(文件名,&結(jié)構(gòu)變量名,屬性常數(shù)組合(如0 x26);其中定義structffblk結(jié)構(gòu)變量名;原形:intfindfirst(path,buffer,attr)和intfindnext(buffer)char*path;要檢索的文件名structffblkcharff_reserved21;charff
21、_attrib;被檢索的文件屬性unsignedff_ftime;最后修改的時間/(0-4位:秒數(shù)/2;5-10位:分?jǐn)?shù);11-15位:小時數(shù))unsignedff_fdate;最后修改的日期/(0-4位:日;5-8位:月;9-15位:年減1980)longff_fsize;文件大小charff_name13;組名*buffer;intattr;/要檢索的文件屬性功能:檢索由path和attr指定的文件,把結(jié)果返回到buffer。findfirst返回關(guān)于第一個指定文件的信息,findnext繼續(xù)檢索。返回值:0(檢索成功),-1(沒有找到指定的文件)屬性常數(shù):FA_NORMAL(0 x00)
22、含意:Normalfile,noattributesFA_RDONLY(0 x01)含意:只讀FA_HIDDEN(0 x02)含意:隱含文件FA_SYSTEM(0 x04)含意:系統(tǒng)文件FA_LABEL(0 x08)含意:卷標(biāo)FA_DIREC(0 x10)含意:子目錄FA_ARCH(0 x20)含意:修改的文件Archive頭文件:dir.h(dos.h)函數(shù)34。floodfill()填充區(qū)域的函數(shù)原形:voidfarfloodfill(intx,inty,intborder)功能:在圖形設(shè)備上用顏色border圍起來的區(qū)域?qū)⒂卯?dāng)前填充顏色填充。(x,y)是待填充區(qū)域的起點,若起點在封閉區(qū)域
23、內(nèi),則區(qū)域內(nèi)被填充;若起點在封閉區(qū)域外,則區(qū)域外被填充。頭文件:graphics.h函數(shù)35。floor()原形:doublefloor(doublenum)功能:求不大于num的最大雙精度整數(shù)頭文件:math.h函數(shù)36。fnmerge()建立文件路徑函數(shù)原形:voidfnmerge(char*path,constchar*drive,constchar*dir,constchar*name,constchar*ext)功能:合成drive:dirname.ext,放在path頭文件:dir.h函數(shù)37。fnsplit()分解完整的路徑名函數(shù)原形:intfnsplit(char*path,c
24、onstchar*drive,constchar*dir,constchar*name,constchar*ext)功能:把文件名路徑path分成4個部分存放。其中drive中有冒號;dir中有開始和結(jié)尾的反斜杠;ext包括開始圓點返回值:如果有擴展名,貝返回值&EXTENSIONS。如果有文件名,則返回值&FILENAME!=0如果有目錄名,則返回值&DIRECTORY!=O如果有驅(qū)動器號,則返回值&DIRVE!=0頭文件:dir.h函數(shù)38。fopen()打開一個流函數(shù)原形:FILE*fopen(constchar*filename,constchar*mode)功能:打開用filenam
25、e指定的文件,并使其與一個流相聯(lián)。使用方式:文件指針名=fopen(文件名,”處理方式)處理方式?。簉t打開一個文本文件,只能讀。wt生成一個文本文件,只能寫。若文件存在則被重寫。at打開一個文本文件,只能在文件尾部添加。rb打開一個二進制文件,只能讀。wb生成一個二進制文件,只能寫。ab打開一個二進制文件,只能在文件尾部添加。rt+打開一個文本文件,可讀可寫。wt+生成一個文本文件,可讀可寫。at+打開一個文本文件,可讀可添加。rb+打開一個二進制文件,可讀可寫。wb+生成一個二進制文件,可讀可寫。ab+打開一個二進制文件,可讀可添加。返回值:指明流的指針(成功時)或NULL(失敗時)注:需
26、先定義FILE*文件指針名;文件名若用argv1代替,則可使用命令行形式指定文件名函數(shù)39。FP_OFF()獲取遠地址偏移量的宏原形:unsignedFP_OFF(voidfar*p)功能:取得和設(shè)置遠指針*p的偏移量返回值:偏移量頭文件:dos.h函數(shù)40。fprintf()傳送輸出到一個流中的函數(shù)原形:intfprintf(FILE*stream,constchar*format,argument,.)功能:向文件指針指向的文件輸出ASCII代碼向顯示器輸出錯誤信息使用形式:使用形式:fprintf(文件指針,輸出格式,輸出項系列);fprintf(stderr,錯誤信息”);使用實例:f
27、printf(stream,%d%c%f,i,c,f);其中定義FILE*stream;inti;charc;floatf;返回值:成功則返回輸出的字節(jié)數(shù),錯誤則返回EOF。頭文件:stdio.h函數(shù)41。FP_SEG()獲取遠地址段值的宏原形:unsignedFP_SEG(voidfar*p)功能:取得和設(shè)置遠指針*p段地址值返回值:段地址值頭文件:dos.hfree()釋放已分配內(nèi)存的函數(shù)原形:voidfree(void*block)功能:釋放由calloc、malloc、realloc函數(shù)調(diào)用所分配的內(nèi)存。頭文件:stdlib.h、alloc.h函數(shù)42。fscanf()格式化輸入函數(shù)原
28、形:intfscanf(FILE*stream,constchar*format,address,.)功能:從一個流中掃描輸入字段,一次掃描一個字符,每個輸入字段根據(jù)format所指格式指示符格式化后,把輸入字段存在format后面由地址參數(shù)給出的位置上。使用格式:fscanf(文件指針,輸入格式,輸入項系列);使用實例:fscanf(fp,%d,&b);從fp指向的文件中讀取十進制整數(shù)(ASCII形式)賦予變量b注:當(dāng)文件指針是stdin時,與scanf功能完全相同頭文件:stdio.h函數(shù)43。fseek()移動文件指針函數(shù)原形:intfseek(FILE*stream,longoffse
29、t,intwhence)作用:強制一個文件的位置指針指向某個特定的位置(甚至超出文件的尾部)。使用格式:fseek(*文件指針,偏移(長整型),起點)定義FILE*文件指針名;起點取值:0或SEEK_SET(表示文件開頭)1或SEEK_CUR(表示當(dāng)前位置)2或SEEK_END(表示文件尾端)返回值:0表示成功,非0值表示失敗頭文件:stdio.h函數(shù)44。fwrite()把參數(shù)寫入流中的函數(shù)原形:size_tfwrite(constvoid*ptr,size_tsize,size_tn,FILE*stream)功能:附加n個數(shù)據(jù)項(每個數(shù)據(jù)項長度為size個字節(jié))到指定的輸出文件后,數(shù)據(jù)從p
30、tr處開始添加。ptr是指向任意對象的指針。返回值:調(diào)用成功時返回實際寫的數(shù)據(jù)項數(shù),出錯時返回一短整形數(shù)值。頭文件:stdio.h例:fwrite(&s,sizeof(s),l,stream);其中s是一結(jié)構(gòu)變量,stream=fopen();函數(shù)45。gcvt()把雙精度數(shù)轉(zhuǎn)化成字符串的函數(shù)原形:char*gcvt(value,ndigit,buf)其中:doublevalue是待轉(zhuǎn)化數(shù)intndigit是轉(zhuǎn)化長度char*buf保存轉(zhuǎn)化后的地址頭文件:stdlib.h函數(shù)46。geninterrupt()執(zhí)行中斷函數(shù)原形:voidgeninterrupt(intn)調(diào)用方式:geninte
31、rrupt(軟中斷號)功能:產(chǎn)生一個8086軟中斷注:需先向寄存器傳遞入口信息(用偽變量)例如偽變量=要賦的值(入口信息);調(diào)用geninterrupt()函數(shù)后得接受出口信息例如變量名=偽變量偽變量:TurboC允許使用偽變量直接訪問相應(yīng)的8086寄存器。偽變量的類型有兩種。unsignedint:_AX、_BX、_CX、_DX、_CS、_DS、_SS、_ES、_SP、_BP、_DI、_SIunsignedchar:_AL、_AH、_BL、_BH、_CL、_CH、_DL、_DH函數(shù)47。getc()從流中取字符的宏原形:intgetc(FILE*stream)功能:返回輸入流stream中一
32、個字符,移動文件指針使之指向下一個字符。使用格式:字符變量=getc(文件指針)(正常情況下讀取到代碼值,讀到文件尾或出錯時返回F)頭文件:dos.h頭文件:graphics.h注:需定義char字符變量;FILE*文件指針;頭文件:stdio.h函數(shù)48。getch()從鍵盤無回顯地讀取一字符的函數(shù)功能:將鍵盤上輸入的單個字符的值(ASCII碼)立刻賦給字符型變量調(diào)用方式:字符形變量=getch()注:需先定義char字符形變量;頭文件:conio.h函數(shù)49。getchar()從stdin流中讀取一個字符的函數(shù)功能:將鍵盤上輸入的單個字符的值(ASCII碼)回車后賦給字符型變量調(diào)用方式:字
33、符型變量=getchar()注:需先定義char字符型變量;頭文件:stdio.h函數(shù)50。getcurdir()讀取指定驅(qū)動器的當(dāng)前目錄的函數(shù)原形:intgetcurdir(intdrive,chardirectory)drive=0(缺省);1(A驅(qū)動器);.directory用來存放目錄名,不包括驅(qū)動器名,不以反斜杠開始。返回值:0(調(diào)用成功);1(出錯)頭文件:dir.h函數(shù)61ogetcwd()讀取當(dāng)前目錄的函數(shù)原形:char*getcwd(char*buf,intbuflen)功能:讀取當(dāng)前目錄的完整路徑名(包括驅(qū)動器名),最長為buflen個字節(jié),存放在buf中。如果buf為NU
34、LL,函數(shù)將分配一個buflen字節(jié)長的緩沖區(qū),以后可將本函數(shù)的返回值作為free函數(shù)的參數(shù)來釋放該緩沖區(qū)。返回值:若buf非空,調(diào)用成功返回buf,出錯返回NULL;若buf為NULL,返回指向已經(jīng)分配的內(nèi)存緩沖區(qū)地址。頭文件:dir.h函數(shù)62。getdate()讀取系統(tǒng)日期函數(shù)原形:voidgetdate(pdate)structdateintda_year;intda_day;intda_mon;structdate*pdate;頭文件:dos.h頭文件:graphics.h函數(shù)63。getdfree()讀取磁盤空閑空間的函數(shù)原形:voidgetdfree(drive,dtable)u
35、nsignedchardrive;驅(qū)動器號(0-當(dāng)前;1-A;2-B;.)structdfreeunsigneddf_avail;可使用的簇數(shù)unsigneddf_total;每個驅(qū)動器的簇數(shù)unsigneddf_bsec;每個扇區(qū)的字節(jié)數(shù)unsigneddf_sclus;每個簇的扇區(qū)數(shù)(出錯時返回0 xffff)*dtable;功能:把由drive指定的關(guān)于驅(qū)動器的信息返回到dtable函數(shù)64。getdisk()讀取當(dāng)前磁盤驅(qū)動器號函數(shù)原形:intgetdisk(void)功能:取得當(dāng)前驅(qū)動器號(0=A;1=B;)頭文件:dir.h函數(shù)65。getenv()讀取環(huán)境變量的當(dāng)前值的函數(shù)原形:
36、char*getenv(constchar*name)用法:s=getenv(環(huán)境變量名”);需先定義char*s;功能:返回一給定的環(huán)境變量值,環(huán)境變量名可大寫或小寫。如果指定的變量在環(huán)境中未定義,則返回一空串。頭文件:stdlib.h函數(shù)66。getimage()將指定區(qū)域的位圖象存入內(nèi)存的函數(shù)原形:voidfargetimage(intleft,inttop,intright,intbottom,voidfar*bitmap)功能:將圖像(矩形區(qū)域)從屏幕拷貝到內(nèi)存,*bitmap指向內(nèi)存中存放圖像的區(qū)域。該區(qū)域的前兩個字節(jié)用于存放矩形的高和寬。頭文件:graphics.h函數(shù)67。ge
37、tmaxx()返回屏幕上最大的X坐標(biāo)值的函數(shù)原形:intfargetmaxx(void)功能:返回當(dāng)前圖形驅(qū)動程序和圖形模式下最大的X坐標(biāo)值。頭文件:dos.h頭文件:graphics.h函數(shù)68。getmaxy()返回屏幕上最大的Y坐標(biāo)值的函數(shù)原形:intfargetmaxy(void)功能:返回當(dāng)前圖形驅(qū)動程序和圖形模式下最大的Y坐標(biāo)值。頭文件:graphics.h函數(shù)69。getpixel()讀取像素顏色的函數(shù)原形:unsignedfargetpixel(intx,inty)頭文件:graphics.h函數(shù)70。getpsp()原形:unsignedgetpsp(void)功能:使用DO
38、S系統(tǒng)調(diào)用0 x62,返回程序段前綴(PSP)的段地址頭文件:dos.h函數(shù)71。gets()從標(biāo)準(zhǔn)輸入流stdio中讀取一字符串的函數(shù)功能:將鍵盤上輸入的字符串立刻賦予字符串變量并顯示出來調(diào)用方式:gets(字符串變量名)注:需定義char*字符串變量名;函數(shù)72。gettime()讀取系統(tǒng)時間的函數(shù)原形:voidgettime(ptime)structtimeunsignedcharti_min;unsignedcharti_hour;unsignedcharti_hund;百分之一秒unsignedcharti_sec;structtime*ptime;函數(shù)73。getvect()讀取中
39、斷向量函數(shù)原形:voidinterrupt(*getvect(intinterruptno)功能:讀入由interruptno(0-255之間)所指定的中斷向量值,并把該中斷向量值作為中斷函數(shù)的遠指針返回。返回值:指定中斷向量的當(dāng)前4字節(jié)值。使用實例:oldfunc=getvect(5);先定義voidinterrupt(*oldfunc)();用后恢復(fù)setvect(5,oldfunc);函數(shù)74。getx()返回當(dāng)前圖形方式下位置的X坐標(biāo)值的函數(shù)原形:intfargetx(void);頭文件:graphics.h函數(shù)75。gety()返回當(dāng)前圖形方式下位置的Y坐標(biāo)值的函數(shù)原形:intfar
40、gety(void);頭文件:graphics.h函數(shù)76。imagesize()返回保存圖像緩沖區(qū)大小的函數(shù)原形:unsignedfarimagesize(intleft,inttop,intright,intbottom)功能:確定保存圖像所需的存儲區(qū)大小。返回值:返回存儲區(qū)的大小(字節(jié)),若所需內(nèi)存大于等于64K-1字節(jié),則返回Oxffff(-1)。頭文件:graphics.h函數(shù)77。initgraph()顯示模式控制函數(shù)(初始化圖形系統(tǒng)函數(shù))功能:把圖形適配器設(shè)置為一種圖形模式,將選擇的圖形驅(qū)動程序(在BGI文件中)裝入到內(nèi)存。調(diào)用方式:voidfarinitgraph(intfar
41、*driver,intfar*mode,charfar*path)其中:*driver可以是數(shù)值(0-10),也可是符號值(DETECT、CGA、MCGA、EGA、EGA64、EGAMONO、RESERVED、HERCMONO、ATT400、VGA、PC3270)。*mode參數(shù)從圖形系統(tǒng)為各種常用的圖形適配器設(shè)置的圖形模式中(CGAC0、IBM8514HI-見頭文件graphics.h)選取。常用的有:VGAMED或1(640 x350)(等效于BIOS的模式15)、EGAHI或1(640 x350)等。path指向的字符串為裝入驅(qū)動程序的路徑。如果缺省路徑,驅(qū)動程序在當(dāng)前目錄。結(jié)束方法:v
42、oidfarclosegraph()函數(shù)用于當(dāng)程序還要繼續(xù)在字符模下運行時。它釋放由圖形函數(shù)所占用的內(nèi)存,同時把屏幕模式恢復(fù)為調(diào)用initgraph()之前的模式。voidfarrestorecrtmode()函數(shù)用于結(jié)束運行。將圖形適配器設(shè)置到原來的模式。任何分配的內(nèi)存都將自動釋放。頭文件:graphics.h函數(shù)78。inport()從端口中讀入一個字的函數(shù)原形:intinport(intportid)調(diào)用方式:整型變量=inport(Ox端口號);功能:從指定端口地址讀一個字。頭文件:dos.h函數(shù)79。inportb()從端口讀入一個字節(jié)的函數(shù)原形:unsignedcharinport
43、b(intportid)調(diào)用方式:字符變*=inportb(0 x端口號);功能:從指定端口地址讀一個字節(jié)。頭文件:dos.h函數(shù)80。int86()執(zhí)行中斷函數(shù)(調(diào)用8086軟中斷函數(shù))原形:intint86(intintno,unionREGS*inregs,unionREGS*outregs)調(diào)用方式:int86(中斷號,&輸入指針名,&輸出指針名)返回值:中斷處理結(jié)束時的AX寄存器的值,錯誤時outregs-x.cflag!=0功能:函數(shù)int86()用來執(zhí)行指定的8086軟中斷。首先把輸入指針?biāo)傅墓灿皿w中的內(nèi)容拷貝到CPU的寄存器中,隨即產(chǎn)生對應(yīng)的中斷,返回后將CPU寄存器(AX)
44、的內(nèi)容拷貝到輸出指針指向的共用體中。在使用int86()函數(shù)進行BIOS接口的系統(tǒng)調(diào)用時,有的中斷調(diào)用設(shè)有若干選擇項,這些選擇項可以根據(jù)調(diào)用時AH寄存器中的值來進行訪問。注:1.需先定義unionREGS輸入指針名,輸出指針名;2.向寄存器傳遞入口信息輸入指針名.x.寄存器名=要賦的值(入口信息);3調(diào)用int86后得接受出口信息變量名=輸出指針名.x.寄存器名4.REGS的定義(在dos.h中):structWORDREGSunsignedintax,bx,cx,dx,si,di,cflag,flags;structBYTEREGSunsignedcharal,ah,bl,bh,cl,ch,
45、dl,dh;unionREGSstructWORDREGSx;structBYTEREGSh;頭文件:dos.h函數(shù)81。int86x()執(zhí)行中斷函數(shù)(通用8086軟中斷接口函數(shù))頭文件:dos.h原形:intint86x(intintno,unionREGS*inregs,unionREGS*outregs,structSREGS*segregs)調(diào)用方式:int86x(中斷號,&輸入指針名,&輸出指針名,&段寄存器指針名;注1:需先定義unionREGS輸入指針名,輸出指針名;unionREGS示意圖structstructrrnirnIIIalI1byteIIIaxL1T12bytesI
46、IIahII1i1111LI1IblnIIbx1TIIbh1ILLI1Icl1TTIIIcxL1TTIIch1ILLI1IdlTTIIdx1TIIdhIWORDREGSBYTEREGSunionregssidiITOC o 1-5 h zIIIII卜TIIIIIIIcflagIIIIIII卜TIIIIIIIflagsIIIIIIx兩個結(jié)構(gòu)變量hIL共享同一存儲域JL共享同一存儲域J其中字段flags對應(yīng)于標(biāo)志寄存器。字段cflag僅對應(yīng)于進位標(biāo)志位,函數(shù)在調(diào)用時不用該字段,只在返回時設(shè)置這個字段,因為許多BIOS服務(wù)都是通過進位標(biāo)置為0還是1來表示成功還是失敗。注2:需先定義structSRE
47、GS段寄存器指針名;結(jié)構(gòu)SREGS定義如下structSREGSunsignedintes,cs,ss,ds函數(shù)只用了該結(jié)構(gòu)中的段寄存器DS和ES。調(diào)用時根據(jù)它們的值設(shè)置DS和ES,同時把DS和ES原來的值保存在這個結(jié)構(gòu)中,返回時再恢復(fù)DS和ES為原來的值,這就允許程序使用遠指針或大數(shù)據(jù)編譯模式。該函數(shù)置全局變量_doserrno等于寄存器AX中的值,其返回值也等于AX中的值。注3:向寄存器傳遞入口信息輸入指針名.x.寄存器名=要賦的值(入口信息);注4:調(diào)用int86x后得接受出口信息變量名=輸出指針名.x.寄存器名函數(shù)82。intdos()通用dos中斷接口函數(shù)原形:intintdos(i
48、nregs,outregs)unionREGS*inregs;調(diào)用時的各寄存器的值unionREGS*outregs;返回寄存器的值功能:產(chǎn)生DOS軟中斷注意:如果需要功能號,則裝AAH;如果需要子功能號,則裝入AL。頭文件:dos.h函數(shù)83。intdosx()通用dos中斷接口函數(shù)原形:intintdosx(inregs,outregs,segregs)unionREGS*inregs;調(diào)用時的各寄存器的值unionREGS*outregs;返回寄存器的值structSREGS*seregs;調(diào)用時的段寄存器的值(還設(shè)置返回時的值)功能:產(chǎn)生DOS軟中斷頭文件:dos.h函數(shù)84。intr
49、()執(zhí)行8086軟中斷函數(shù)(改變軟中斷接口函數(shù))原形:voidintr(intintno,structREGPACK*preg)調(diào)用方式:intr(中斷號,&結(jié)構(gòu)變量名)注1:結(jié)構(gòu)REGPACK定義如下structREGPACK頭文件:math.h頭文件:math.hunsignedr_ax,r_bx,r_cx,r_dx;unsignedr_bp,r_si,r_di,r_ds,r_es,r_flag;注2:使用時先定義一個結(jié)構(gòu)變量structREGPACK結(jié)構(gòu)變量名;注3:入口和出口用同一個結(jié)構(gòu)變量來傳遞寄存器的值。結(jié)構(gòu)變量名r_ax=要賦的值;intr(中斷號,&結(jié)構(gòu)變量名);某變量=結(jié)構(gòu)變
50、量名.r_ax;頭文件:dos.h函數(shù)85。itoa()把整形數(shù)轉(zhuǎn)換為字符串的函數(shù)原形:char*itoa(intvalue,char*string,intradix)功能:把value的值轉(zhuǎn)換為以NULL結(jié)束的字符串,并把結(jié)果存在string中。radix是轉(zhuǎn)換的基數(shù)值,在2到36之間。分配給string的空間必須可容納返回的所有字節(jié)(最多17字節(jié))。返回值:指向string的指針頭文件:stdlib.h函數(shù)86。kbhit()檢查當(dāng)前按下的鍵的函數(shù)原形:intkbhit(void)功能:檢查按下的鍵是否有效,若有效則可用getch()或getche()讀取。返回值:如果按鍵有效,返回一非零
51、值,否則返回0。頭文件:conio.h函數(shù)87。keep()駐留并退出函數(shù)原形:voidkeep(unsignedcharstatus,unsignedsize)功能:用于安裝一個TSR程序(使用DOS功能調(diào)用0 x31)。出口狀態(tài)設(shè)置為在status中的值,程序占用存儲空間為size,并釋放內(nèi)存的其余部分。頭文件:dos.h函數(shù)88。log()原形:doublelog(doublenum)功能:求num的自然對數(shù)值函數(shù)89。iogio()原形:doublelog10(doublenum)功能:求num以10為底的對數(shù)值頭文件:math.h函數(shù)90。_lrotl()將一個無符號長整形數(shù)左循環(huán)移
52、位的函數(shù)原形:unsignedlong_lrotl(unsignedlongvalue,intcount)功能:將value向左循環(huán)移動count位。返回值:將value向左循環(huán)移動count位后的值。頭文件:stdlib.h函數(shù)91。_lrotr()將一個無符號長整形數(shù)右循環(huán)移位的函數(shù)原形:unsignedlong_lrotr(unsignedlongvalue,intcount)功能:將value向右循環(huán)移動count位。返回值:將value向右循環(huán)移動count位后的值。頭文件:stdlib.h函數(shù)92。lseek()移動文件指針函數(shù)原形:longlseek(inthandle,long
53、offset,intfromwhere)handle=open()函數(shù)的返回值(文件句柄);fromwhere=文件位置(SEEK_SET(0)從文件頭位置;SEEK_CUR(1)從當(dāng)前文件指針位置;SEEK_END(2)從文件結(jié)尾位置)功能:把文件指針移動到fromwhere所指的地址加上offset新位置的偏移上。頭文件:io.h返回值:指針新位置的偏移量(相對于文件開始處),出錯時返回-1L。函數(shù)93。ltoa()把長整形數(shù)轉(zhuǎn)換為字符串的函數(shù)原形:char*ltoa(longvalue,char*string,intradix)功能:把value的值轉(zhuǎn)換為以NULL結(jié)束的字符串,并把結(jié)果
54、存在string中。radix是轉(zhuǎn)換的基數(shù)值,在2到36之間。分配給string的空間必須可容納返回的所有字節(jié)(最多33字節(jié))。返回值:指向string的指針頭文件:stdlib.h函數(shù)94。malloc()分配內(nèi)存函數(shù)原形:void*malloc(size_tsize)功能:從堆中分配大小為size字節(jié)的塊。Win32也適用。返回值:返回新分配內(nèi)存的地址,若無足夠內(nèi)存,返回NULL。頭文件:alloc.h、stdlib.h函數(shù)95。mkdir()創(chuàng)建目錄函數(shù)原形:intmkdir(constchar*path)功能:按給定的路徑建立一個新的目錄頭文件:dir.h返回值:0(成功);-1(失敗
55、)函數(shù)96。mktemp()建立一個唯一的文件名的函數(shù)原形:char*mktemp(char*template)功能:使用一個唯一的文件名來替換字符串template,并返回template。頭文件:dir.h函數(shù)97。MK_FP()設(shè)置一個遠指針的宏原形:voidfar*MK_FP(unsignedseg,unsignedofs)功能:通過段值(seg)和偏移量(ofs)建立一個遠指針返回值:遠指針頭文件:dos.h函數(shù)98。movedata()拷貝數(shù)據(jù)函數(shù)原形:voidmovedata(unsignedsrcseg,unsignedsrcoff,unsigneddstseg,unsigne
56、ddstoff,size_tn)功能:從原地址(srcseg:srcoff)拷貝n個字節(jié)的數(shù)據(jù)到目標(biāo)地址(dstseg:dstoff)。頭文件:mem.h、string.h函數(shù)99。_open()打開一個文件進行讀寫的函數(shù)原形:int_open(path,oflags)char*path;已建立文件的路徑名intoflags;/方式功能:打開由path指定的文件,返回文件的句柄返回值:0(正常結(jié)束);-1(錯誤)頭文件:fcntl.hio.h函數(shù)100。open()打開文件進行讀寫的函數(shù)原形:intopen(constchar*path,intaccess,unsignedmode)使用方法:
57、文件句柄=open(文件名,打開模式I打開模式);功能:打開path指定的文件,根據(jù)access指定的模式值讀寫。access模式:O_RDONLY以只讀方式打開O_WRONLY以只寫方式打開O_RDOWR以讀寫方式打開以上標(biāo)志只能使用一個,以下可以用|組合使用O_NDELAYO_APPEND若置位,每次寫操作前都使文件指針指到文件末尾O_CREAT若文件不存在則創(chuàng)建O_TRUNC若文件已存在,則將文件長度截為0O_EXCL只和O_CREAT一起使用,若文件已經(jīng)存在,返回錯誤代碼O_BINARY以二進制方式打開O_TEXT以文本方式打開如果使用了O_CREAT方式,則需要提供參數(shù)mode(S_
58、IWRITE可寫;S_IREAD可讀;S_IREADIS_IWRITE可讀寫)返回值:文件句柄(成功時)-;1(失敗時)。成功時,文件指針指向文件頭。頭文件:fcntl.hio.h函數(shù)101。outport()輸出一個字到端口中的函數(shù)原形:voidoutport(intportid,intvalue)調(diào)用方式:outport(0 x端口號,要輸出的字);功能:往指定端口地址輸出一個字。頭文件:dos.h函數(shù)102。outportb()輸出一個字節(jié)到端口中的函數(shù)原形:voidoutportb(intportid,unsignedcharvalue)調(diào)用方式:outportb(0 x端口號,要輸出
59、的字節(jié));功能:往指定端口地址輸出一個字節(jié)。附:PCI/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地址功能、用途I/O地址功能、用途0DMA通道0,內(nèi)存地址寄存器(DMA控制器1(8237)1DMA通道0,傳輸計數(shù)寄存器2DMA通道1,內(nèi)存地址寄存器3DMA通道1,傳輸計數(shù)寄存器4DMA通道2,內(nèi)存地址寄存器5DMA通道2,傳輸計數(shù)寄存器6DMA
60、通道3,內(nèi)存地址寄存器7DMA通道3,傳輸計數(shù)寄存器8DMA通道0-3的狀態(tài)寄存器AHDMA通道0-3的屏蔽寄存器BHDMA通道0-3的方式寄存器CHDMA清除字節(jié)指針DHDMA主清除字節(jié)EHDMA通道0-3的清屏蔽寄存器FHDMA通道0-3的寫屏蔽寄存器19HDMA起始寄存器20H-3FH可編程中斷控制器1(8259)使用40H可編程中斷計時器(8253)使用,讀/寫計數(shù)器041H可編程中斷計時器寄存器42H可編程中斷計時器雜項寄存器43H可編程中斷計時器,控制字寄存器44H可編程中斷計時器,雜項寄存器(AT)47H可編程中斷計時器,計數(shù)器0的控制字寄存器48H-5FH可編程中斷計時器使用6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年四川鐵道職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024版上海二手房交易合同規(guī)范文本
- 2025年唐山幼兒師范高等專科學(xué)校高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025年中國寶寶沐浴露市場調(diào)查研究報告
- 二零二四因公出國類項目環(huán)境保護與可持續(xù)發(fā)展合同3篇
- 2025至2031年中國瀘州老窖酒行業(yè)投資前景及策略咨詢研究報告
- 2025-2030全球低溫DBB閥門行業(yè)調(diào)研及趨勢分析報告
- 二零二五版童裝行業(yè)創(chuàng)新產(chǎn)品研發(fā)合作協(xié)議3篇
- 二零二四年醫(yī)療器械臨床試驗研究者臨床試驗不良反應(yīng)監(jiān)測合同3篇
- 2025至2031年中國PP阻燃色母粒行業(yè)投資前景及策略咨詢研究報告
- 南通市2025屆高三第一次調(diào)研測試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國人民保險集團校園招聘高頻重點提升(共500題)附帶答案詳解
- 重癥患者家屬溝通管理制度
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對法》及其應(yīng)用案例
- 小學(xué)二年級數(shù)學(xué)口算練習(xí)題1000道
- 納布啡在產(chǎn)科及分娩鎮(zhèn)痛的應(yīng)用
- DZ/T 0462.4-2023 礦產(chǎn)資源“三率”指標(biāo)要求 第4部分:銅等12種有色金屬礦產(chǎn)(正式版)
- 化學(xué)-福建省龍巖市2024屆高三下學(xué)期三月教學(xué)質(zhì)量檢測(一模)試題和答案
- 凸優(yōu)化在經(jīng)濟學(xué)與金融學(xué)中的應(yīng)用
- 家譜、宗譜頒譜慶典講話
評論
0/150
提交評論