版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
分類函數(shù),所在函數(shù)庫為ctype.h
iniisalpha(intch)若ch是字母('A-Z,'a'")返回非0值,否則返回0
intisalnum(intch)若ch是字母(7\'」乙才-7)或數(shù)字('0'」9')
返回非。值,否則返回0
intisascii(intch)若ch是字符(ASCH碼中的0?127)返回非0值,否則返回0
intiscntrl(intch)若ch是作廢字符(0x7F)或普通控制字符(OxOO-OxlF)
返回非。值,否則返回0
intisdigit(intch)若ch是數(shù)字(。」9‘)返回非0值,否則返回0
intisgraph(intch)若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否則返回0
intislower(intch)若ch是小寫字母('a'-'z')返回非0值,否則返回0
intisprint(intch)若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否則返回0
intispunct(intch)若ch是標(biāo)點字符(OxOO-OxlF)返回非0值,否則返回0
intisspace(intch)若ch是空格水平制表符(*'),回車符(M),
走紙換行C\f'),垂直制表符C\v'),換行符(''n')
返回非。值,否則返回0
intisupper(intch)若ch是大寫字母(,A'-Z)返回北0值,否則返回0
intisxdigit(intch)若ch是16進(jìn)制數(shù)('0'?9普?午'用-巧返回非0值,
否則返回0
inttolower(intch)若ch是大寫字母('A'-Z)返回相應(yīng)的小寫字母(‘a(chǎn)'-z')
inttoupper(intch)若ch是小寫字母('a'-'z')返回相應(yīng)的大寫字母(W-Z)
數(shù)學(xué)函數(shù),所在函數(shù)庫為math.h>stdlib.h>string.h>float.h
intabs(inti)返回整型參數(shù)i的絕對值
doublecabs(structcomplexznum)返回復(fù)數(shù)znum的絕對值
doublefabs(doublex)返回雙精度參數(shù)x的絕對值
longlabs(longn)返回長整型參數(shù)n的絕對值
doubleexp(doublex)返回指數(shù)函數(shù)ex的值
doublefrexp(doublevalue,int*ep)tr)返回value=x*2n中x的值,n存貯在eptr中
doubleldexp(doublevaluejntexp));返回value*2exp的值
doublelog(doublex)返回logex的值
doubleIogl0(doublex)返回loglOx的值
doublepow(doublex,doubley)返回xy的值
doublepowlO(intp)返回10p的值
doublesqrt(doublex)返回+Vx的值
doubleacos(doublex)返網(wǎng)X的反余弦cos-l(x)值,X為弧度
doubleasin(doublex)返回x的反正弦sin-l(x)值,x為弧度
doubleatan(doublex)返回x的反正切tan?l(x)值,x為弧度
doubleatan2(doubleyzdoublex)返回y/x的反正切tan-l(x)值,yfitx為弧度
doublecos(doublex)返回X的余弦cos(x)值,X為弧度
doublesin(doublex)返回x的正弦sin(x)值,x為弧度
doubletan(doublex)返回x的正切tan(x)值,x為弧度
doublecosh(doublex)返回x的雙曲余弦8sh(X)值,X為弧度
doublesinh(doublex)返回x的雙曲正弦sinh(x)值,x為弧度
doubletanh(doublex)返回x的雙曲正切tanh(x)值,x為弧度
doublehypul(doublex,doubley)返回直角三角形斜邊的長度Q),
x和y為直角邊的長度,z2=x2+y2
doubleceil(doublex)返回不小于x的最小整數(shù)
doublefloor(doublex)返回不大于x的最大整數(shù)
voidsrand(unsignedseed)初始化隨機(jī)數(shù)發(fā)生器
intrand()產(chǎn)生一個隨機(jī)數(shù)并返回這個數(shù)
doublepoly(doublexzintredoublec口)從參數(shù)產(chǎn)生?個多項式
doublemodf(doublevalue,double*iptr)將雙精度數(shù)value分解成尾數(shù)和階
doublefmod(doublexzdoubley)返回x/y的余數(shù)
doublefrexp(doublevaluejnt*eptr)將雙精度數(shù)value分成尾數(shù)和階
doubleatof(char*nptr)將字符串nptr轉(zhuǎn)換成浮點數(shù)并返回這個浮點數(shù)
doubleatoi(char*nptr)將字符串nptr轉(zhuǎn)換成整數(shù)并返回這個整數(shù)
doubleatol(char*nptr)將字符串叩tr轉(zhuǎn)換成長整數(shù)并返回這個整數(shù)
char*ecvt(doublevaluejntndigitjnt*decptzint*sign)
將浮點數(shù)value轉(zhuǎn)換成字符串并返回該字符申
char*fcvt(doublevaluejntndigitjnt*decptjnt*sign)
將浮點數(shù)value轉(zhuǎn)換成字符串并返回該字符串
char*gcvt(doublevaluejntndigi^char*buf)
將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針
char*ultoa(unsignedlongvaluezchar"string,intradix)
將無符號整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時所用基數(shù)
char*ltoa(longvalue,char*string,intradix)
將長整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串jadix為轉(zhuǎn)換時所用基數(shù)
char*itoa(intvalue,char*string,intradix)
將整數(shù)value轉(zhuǎn)換成字符串存入string,radix為轉(zhuǎn)換時所用基數(shù)
doubleatof(char*nptr)將字符串叩tr轉(zhuǎn)換成雙精度數(shù),并返回這個數(shù),錯誤返回0
intatoi(char*nptr)將字符串nptr轉(zhuǎn)換成整型數(shù),并返回這個數(shù),錯誤返回0
longatol(char*nptr)將字符串nptr轉(zhuǎn)換成長整型數(shù),并返回這個數(shù),錯誤返回0
doublestrtod(char*str;char**endptr)將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個數(shù),
longstrtol(char*strzchar**endp:r;intbase)將字符串str轉(zhuǎn)換成長整型數(shù),
并返回這個數(shù),
intmatherr(structexception*e)
用戶修改數(shù)學(xué)錯誤返回信息函數(shù)(沒有必要使用)
double_matherr(_mexcepwhy,char*fun,double*arglp,
double*arg2p,doubleretval)
用戶修改數(shù)學(xué)錯誤返回信息函數(shù)(沒有必要使用)
unsignedint_clear87()清除浮點狀態(tài)字并返回原來的浮點狀態(tài)
void_fpreset()重新初使化浮點數(shù)學(xué)程序包
unsignedint_status87()返回浮點狀態(tài)字
目錄函數(shù),所在函數(shù)庫為dir.h、dos.h
intchdir(char*path)使指定的目錄path(如>C:\\WPS”)變成當(dāng)前的工作目錄,成
功返回0
inifindfirsl(char*pdlhriarne^lruclffblk*(Tblk,inlaUrib)查找指定的文件,成功
返回0
pathname為指定的目錄名和文件名,如"C:\\WPS\\TXT'
ffblk為指定的保存文件信息的一個結(jié)構(gòu),定義如下:
II
Istructffblk|
l{I
Icharff_reserved[21];/*DOS保留字*/I
Icharff_attrib;/*文件屬性=71
Iint/*文件時間*/1
Iintif_fdate;/*文件日期*/1
1longff_fsize;/*文件長度*/1
Icharff_name[13];/*文件名*/
1)
I
attrib為文件屬性,由以下字符代表
IFA_RDONLY只讀文件|FA_LABEL卷標(biāo)號|
|FA_HIDDEN隱藏文件|FA_DIREC目錄|
IFA_SYSTEM系統(tǒng)文件|FA.ARCH檔案|
例:
structffblk";
findfirst("*.wps"z&ffzFA_RDONLY);
intfindnext(structffblk*ffblk)取匹配finddirst的文件,成功返回0
voidfumerge(char*path,char*drivezchar*dir;charMame,char*ext)
此函數(shù)通過盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),
文件名name(TC,WPS等),擴(kuò)展名ext(.EXE,.COM等)組成一個文件名
存與path中.
intfnsplit(char*pathzchar"drive,char*dir;char*namezchar*ext)
此函數(shù)將文件名path分解成盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),
文件名name(TC.WPS等),擴(kuò)展名ext(.EXE..COM等),并分別存入相應(yīng)的變量中.
intgetcurdir(intdrive,char*direc)此函數(shù)返回指定驅(qū)動器的當(dāng)前工作目錄名稱
drive指定的驅(qū)動器(0=當(dāng)前,1=A,2=B,3=C等)
direc保存指定驅(qū)動器當(dāng)前工作路徑的變量成功返回0
char*getcwd(char*bufziintn)此函數(shù)取當(dāng)前工作目錄并存入buf中,直到n個字
節(jié)長為為止.錯誤返回NULL
intgetdisk()取當(dāng)前正在使用的驅(qū)動器,返回一個整數(shù)(0=A,l=B,2=C等)
intsetdisk(intdrive)設(shè)置要使用的驅(qū)動器drive(0=A,l=B,2=C等),
返回可使用驅(qū)動器總數(shù)
intmkdir(char*pathname)建立??個新的目錄pathname,成功返回0
intrmdir(char*pathname)刪除一個目錄pathname,成功返回0
char*mktemp(char"template)構(gòu)造一個當(dāng)前目錄上沒有的文件名并存于template中
char*searchpdlh(chcir*pdllindme)利用MSDOS找出文件filename所在路徑,
,此函數(shù)使用DOS的PATH變量,未找到文件返回NULL
進(jìn)程函數(shù),所在函數(shù)庫為stdlib.h^process.h
voidabort()此函數(shù)通過調(diào)用具有出口代碼3的_exit寫一個終止信息于stderr,
并異常終止程序。無返回值
intexec...裝入和運(yùn)行其它程序
intexecl(char*pathnamezchar*argOzchar*arglz...zchar*argnzNULL)
intexede(char.pathname,char*argO,char*arglz...z
char*argn,NULL,char*envp[])
intexeclp(char*pathname,char*argOzchar*argl/.../NULL)
intexeclpe(char*pathname,char*argO,charNULL,char*envp[])
intexecv(char*pathnamezchar*argv[])
intexecve(char*pathname,char*argv[]zchar*envp[])
intexecvp(char*pathnamezchar*argv[])
intexecvpe(char*pathname,char*argv[],char*envp[])
exec函數(shù)族裝入并運(yùn)行程序pathname,并將參數(shù)
arg0(argl,arg2,argv口,envp口)傳遞給子程序,出錯返回-1
在exec函數(shù)族中,后綴I、v、p、e添加到exec后,
所指定的函數(shù)將具有某種操作能力
有后綴p時,函數(shù)可以利用DOS的PATH變量查找子程序文件。
I時,函數(shù)中被傳遞的參數(shù)個數(shù)固定。
v時,函數(shù)中被傳遞的參數(shù)個數(shù)不固定。
e時,函數(shù)傳遞指定參數(shù)envp,允許改變子進(jìn)程的環(huán)境,
無后綴e時,子進(jìn)程使用當(dāng)前程序的環(huán)境。
void_exit(intstatus)終止當(dāng)前程序,但不清理現(xiàn)場
voidexit(intstatus)終止當(dāng)前程序,關(guān)閉所有文件,寫緩沖區(qū)的輸出(等待輸出),
并調(diào)用任何寄存器的“出口函數(shù)”,無返回值
intspawn…運(yùn)行子程序
intspawnl(intmode,char*pathname,char*argOzchar*argl,...,
char*argn,NULL)
intspawnle(intmode,char*pathnamezchar*argOzchar*argl,...,
char*argn,NULL,char*envp[])
intspawnlp(intmode,char*pathnamezchar*argOzchar*argl,...,
char*argn,NULL)
intspawnlpe(intmode,char*pathnamezchar*argO,char*argl,...z
char*argn,NULL,char*envp[])
intspawnv(intmode,char*pathnamezchar*argv[])
intspawnve(intmode,char*pathname,char*argv[],char*envp[])
intspawnvp(intmode,char.pathname,char*argv[])
intspawnvpe(intmode,char*pathnamezchar*argv[]zchar*envp[])
spawn困數(shù)族在mode模式下運(yùn)行子程序pdlhname,并將參數(shù)
arg0(argl,arg2,argv口,envp口)傳遞給子程序.出錯返回-1
mode為運(yùn)行模式
mode為P_WAIT表示在子程序運(yùn)行完后返回本程序
P_NOWAIT表示在子程序運(yùn)行時同時運(yùn)行本程序(不可用)
P_OVERLAY表示在本程序退出后運(yùn)行子程序
在spawn函數(shù)族中,后綴I、v、p、e添加到spawn后,
所指定的函數(shù)將具有某種操作能力
有后綴p時,函數(shù)利用DOS的PATH查找子程序文件
I時,函數(shù)傳遞的參數(shù)個數(shù)固定.
▽時,,函數(shù)傳遞的參數(shù)個數(shù)不固定.
e時,指定參數(shù)envp可以傳遞給子程序,允許改變子程序運(yùn)行環(huán)境.
當(dāng)無后綴e時,子程序使用本程序的環(huán)境.
intsystem(char*command)將MSDOS命令command傳遞給DOS執(zhí)行
轉(zhuǎn)換子程序,函數(shù)庫為math.h>stdlib.h>ctype.h>float.h
char*ecvt(doublevaluejntndigitjnt*decptzint*sign)
將浮點數(shù)value轉(zhuǎn)換成字符串并返回該字符串
char*fcvt(doublevaluejntndigitjnt*decpt,int*sign)
將浮點數(shù)value轉(zhuǎn)換成字符串并返回該字符串
char*gcvt(doublevaluejntndigitzchar*buf)
將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針
char*ultoa(unsignedlongvaluezchar"string,intradix)
將無符號整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串jadix為轉(zhuǎn)換時所用基數(shù)
char*ltoa(longvalue,char.string,intradix)
將長整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串jadix為轉(zhuǎn)換時所用基數(shù)
char*itoa(intvalue,char*stringzintradix)
將整數(shù)value轉(zhuǎn)換成字符串存入string,radix為轉(zhuǎn)換時所用基數(shù)
doubleatof(char*nptr)將字符串nptr轉(zhuǎn)換成雙精度數(shù),并返回這個數(shù),錯誤返回0
intatoi(char*nptr)將字符串nptr轉(zhuǎn)換成整型數(shù),并返回這個數(shù),錯誤返回0
longatol(char*nptr)將字符串nptr轉(zhuǎn)換成長整型數(shù),并返回這個數(shù),錯誤返回0
doublestrtod(char*str;char**endptr)將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個數(shù),
longstrtol(char*strzchar**endp:r;intbase)將字符串str轉(zhuǎn)換成長整型數(shù),
并返回這個數(shù),
inttoascii(intc)返回c相應(yīng)的ASCII
inttolower(intch)若ch是大寫字母('A'-Z)返回相應(yīng)的小寫字母('a'-'z')
int_tolower(intch)返回ch相應(yīng)的小寫字母('a'-'z')
inttoupper(intch)若ch是小寫字母('a'-'z')返回相應(yīng)的大寫字母(7V-Z)
int_toupper(intch)返回ch相應(yīng)的大寫字母('A'-'Z')
診斷函數(shù),所在函數(shù)庫為assert.h>math.h
voidasserl(inltest)一個擴(kuò)展成if?語句那樣的宏,如果lesl測試失敗,
就顯示一個信息并異常終止程序,無返回值
voidperror(char*string)本函數(shù)將顯示最近一次的錯誤信息,格式如下:
字符串string:錯誤信息
char*strerror(char*str)本函數(shù)返回最近一次的錯誤信息,格式如下:
字符串str:錯誤信息
intmatherr(structexception*e)
用戶修改數(shù)學(xué)錯誤返回信息函數(shù)(沒有必要使用)
double_matherr(_mexcepwhyzchar*funzdouble*arglp,
double*arg2p,doubleretval)
用戶修改數(shù)學(xué)錯誤返回信息函數(shù)(沒有必要使用)
輸入輸出子程序,函數(shù)庫為io?h、conio.h>stat.h>dos.h>
stdio.h>signal.h
intkbhit()本函數(shù)返回最近所敲的按鍵
intfgetchar()從控制臺(鍵盤)讀一個字符,顯示在屏幕上
intgetch()從控制臺(鍵盤)讀?個字符,不顯示在屏幕上
intputch()向控制臺(鍵盤)寫一個字符
intgetchar()從控制臺(鍵盤)讀一個字符,顯示在屏幕上
intputchar()向控制臺(鍵盤)寫一個字符
intgetche()從控制臺(鍵盤)讀一個字符,顯示在屏幕上
intungetch(intc)把字符c退回給控制臺(鍵盤)
char*cgets(char*string)從控制臺(鍵盤)讀入字符串存于string中
intscanf(char*format[,argument...])從控制臺讀入一個字符串,分別對各個參數(shù)進(jìn)行
賦值,使用BIOS進(jìn)行輸出
intvscanf(char*formatzValistparam)從控制臺讀入一個字符串,分別對各個參數(shù)進(jìn)行
賦值,使用BIOS進(jìn)行輸出,參數(shù)從Valistparam中取得
intcscanf(char*format[,argument...])從控制臺讀入一個字符串,分別對各個參數(shù)進(jìn)行
賦值,直接對控制臺作操作,比如顯示器在顯示時字符時即為直接寫頻方式顯示
intsscanf(char"string,char*fornat:Largument,...])通過字符串string,分別對各個
參數(shù)進(jìn)行賦值
intvsscanf(char*stringzchar*format/Vlistparam)通過字符串string,分別對各個
參數(shù)進(jìn)行賦值,參數(shù)從Vlistparam中取得
intputs(char*string)發(fā)關(guān)一個字符串string給控制臺(顯示器),
使用BIOS進(jìn)行輸出
voidcputs(char*string)發(fā)送一個字符串string給控制臺(顯示器),
直接對控制臺作操作,比如顯示器即為直接寫頻方式顯示
intprintf(char*format[/argument,...])發(fā)送格式化字符串輸出給控制臺(顯示器)
使用BIOS進(jìn)行輸出
intvprintf(char*format,Valistparam)發(fā)送格式化字符串輸出給控制臺(顯示器)
使用BIOS進(jìn)行輸出,參數(shù)從Valistparam中取得
intcprintf(char*format[,argumentz...])發(fā)送格式化字符串輸出給控制臺(顯示器),
直接對控制臺作操作,比如顯示器即為直接寫頻方式顯示
intvcprintf(char*formatzValistparam)發(fā)送格式化字符串輸出給控制臺(顯示器),
直接對控制臺作操作,比如顯示器即為直接寫頻方式顯示,
參數(shù)從Valistparam中取得
intsprintf(char*string,char*format[,argument/...])
將字符串string的內(nèi)容重新寫為格式化后的字符串
intvsprintf(char.string,char.format,Valistparam)
將字符串string的內(nèi)容重新寫為格式化后的字符串,參數(shù)從Valistparam中取得
intrename(char*oldnamezchar*newname)將文件oldname的名稱改為newname
intioctl(inthandle,intcmd[Jnt*argdxzintargcx])
本函數(shù)是用來控制輸入/輸出設(shè)備的,請見下表:
1I1
1cmd值|功能I
1----------1-----------------------------------------------------------------------------------1
10|取出設(shè)備信息1
111設(shè)置設(shè)備信息1
12|把a(bǔ)rgcx字節(jié)讀入由argdx所指的地址|
13|在argdx所指的地址寫argcx字節(jié)|
14|除把handle當(dāng)作設(shè)備號(0=當(dāng)前,1=A,等)之外,均和cmd=2時一樣|
15|除把handle當(dāng)作設(shè)備號(0=當(dāng)前,1=A,等)之外,均和cmd=3時一樣|
16|取輸入狀態(tài)I
17|取輸出狀態(tài)|
18|測試可換性;只對于DOS3.x|
1111置分享沖突的重算計數(shù);只對DOS3,x1
111
int(*ssignal(intsig,int(*action)())()執(zhí)行軟件信號(沒必要使用)
intgsignal(intsig)執(zhí)行軟件信號(沒必要使用)
int_open(char*pathnamezintaccess)為讀或?qū)懘蜷_一個文件,
按后按access來確定是讀文件還是寫文件,access值見下表
i??
1access值|意義|
1-------------------1------------------------------------------------------------1
1O_RDONLY|讀文件|
IO_WRONLY|寫文件|
IO.RDWR|即讀也寫|
1O_NOINHERIT|若文件沒有傳遞給子程序,則被包含|
1O_DENYALL|只允許當(dāng)前處理必須存取的文件|
1O.DENYWRITE|只允許從任何其它打開的文件讀|
1O_DENYREAD|只允許從任何其它打開的文件寫|
1O_DENYNONE|允許其它共享打開的文件|
intopen(char*pathname,intaccess[Jntpermiss])為讀或?qū)懘蜷_一個文件,
按后按access來確定是讀文件還是寫文件,access值見下表
access值|意義
O.RDONLY|讀文件|
O_WRONLY|寫文件|
O_RDWR|即讀也寫|
O.NDELAY|沒有使用;對UNIX系統(tǒng)兼容|
O.APPEND|即讀也寫,但每次寫總是在文件尾添加|
O_CREAT|若文件存在,此標(biāo)志無用;若不存在,建新文件|
O_TRUNC|若文件存在,則長度被截為。,屬性不變I
O-EXCL|未用;對UNIX系統(tǒng)兼容|
O.BINARY|此標(biāo)志可顯示地給出以二進(jìn)制方式打開文件|
O_TEXT|此標(biāo)志可用于顯示地給出以文本方式打開文件|
permiss為文件屬性,可為以下值:
S」WRITE允許寫S_IREAD允許讀S」READ|S」WRITE允許讀、寫
建立一個新文件并設(shè)定
intcreat(char*filenamezintpermiss)filename,
讀寫性。permiss為文件讀寫性,可以為以下值
S」WRITE允許寫S」READ允許讀S_IREAD|S」WRITE允許讀、寫
建立一個新文件并設(shè)定文件
int_creat(char*filenamezintattrib)filename,
屬性。attrib為文件屬性,可以為以下值
FA_RDONLY只讀FA_HIDDEN隱藏FA_SYSTEM系統(tǒng)
intcreatnew(char*filenamt,intattrib)建立一個新文件filename,并設(shè)定文件
屬性。attrib為文件屬性,可以為以下值
FA_RDONLY只讀FA_HIDDEN隱藏FA_SYSTEM系統(tǒng)
intcreattemp(char*filenamt,intattrib)建立一個新文件filename,并沒定文件
屬性。attrib為文件屬性,可以為以下值
FA_RDONLY只讀FA_HIDDEN隱藏FA_SYSTEM系統(tǒng)
intread(inthandle,void*bu£intnbyte)從文件號為handle的文件中讀nbyte個字符
存入buf中
int_read(inthandle,void*buf,intnbyte)從文件號為handle的文件中讀nbyte個字符
存入buf中,直接調(diào)用MSDOS進(jìn)行操作.
intwrite(inthandle,void*buf,intnbyte)將buf中的nbyte個字符寫入文件號
為handle的文件中
將中的個字符寫入文件號
int_write(inthandle,void*bufzintnbyte)bufnbyte
為handle的文件中
intdup(inthandle)復(fù)制一個文件處理指針handle,返回這個指針
intdup2(inthandlejntnewhandle)復(fù)制一個文件處理指針handle至ijnewhandle
inteof(int/handle)檢查文件是否結(jié)束,結(jié)束返回1,否則返回0
longfilelength(inthandle)返回文件長度,handle為文件號
intsetmode(inthandle,unsignedmode)本函數(shù)用來設(shè)定文件號為handle的文件的打
開方式
intgetftime(inthandle,structftime*ftime)讀取文件號為handle的文件的時間,
并將文件時間存于ftime結(jié)構(gòu)中,成功返回0,ftime結(jié)構(gòu)如下:
structftime
{I
unsignedft_tsec:5;/*秒*/|
unsignedft_min:6;/*分*/|
unsignedft_hour:5;/*時*/|
unsignedft_day:5;/*日*/|
unsignedft_month:4;/*月*/|
unsignedft_year:l;/*年-1980*/|
}I
intsetftime(inthandle,structftime*ftime)重寫文件號為handle的文件時間,
新時間在結(jié)構(gòu)ftime中.成功返回0.結(jié)構(gòu)ftime如下:
structftimeI
{I
unsignedft_tsec:5;/*秒*/I
unsignedft_min:6;/*分*/|
unsignedft_hour:5;/*時*/|
unsignedft_day:5;/*曰*/|
unsignedft_month:4;/*Jl*/|
unsignedft_year:l;/*^-1980*/|
}I
longlseek(inthandlejongoffset,intfromwhere)本函數(shù)將文件號為handle的文件
的指針移到fromwhere后的第offset個字節(jié)處.
SEEK_SET文件開關(guān)SEEK_CUR當(dāng)前位置SEEK_END文件尾
longtell(inthandle)本函數(shù)返回文件號為handle的文件指針,以字節(jié)表示
intisatty(inthandle)本函數(shù)用來取設(shè)備handle的類型
intlock(inthandlejongoffset,longlength)對文件共享作封鎖
intunlock(inthandlejongoffset,longlength)打開對文件共享的封鎖
intclose(inthandle)關(guān)閉handle所表示的文件處理,handle是從_creai、create
creatnew、creattemp.dup、dup2、_open、open中的?個處調(diào)用獲得的文件處理
成功返回0否則返回T,可用于UNIX系統(tǒng)
int_close(inthandle)關(guān)閉handle所表示的文件處理,handle是從_creat、create
creatnew、creattemp^dup、dup2、_open,open中的一個處調(diào)用獲得的文件處理
成功返回0否則返回-1,只能用于MSDOS系統(tǒng)
FILE*fopen(char/filename,char*type)打開一個文件filename,打開方式為type,
并返回這個文件指針,type可為以下字符串加上后綴
Itype|讀寫性|文本/2進(jìn)制文件|建新/打開舊文件|
1r|讀1文本1打開舊的文件1
1w|寫1文本1建新文件1
1a|添加1文本1有就打開無則建新1
1r+|讀/寫1不限制1打開1
1w+|讀/寫1不限制1建新文件1
1a+|讀/添加|不限制1有就打開無則建新1
11111
可加的后綴為t、bo加b表示文件以二進(jìn)制形式進(jìn)行操作,t沒必要使用
例:?-------------------------------------1
I#include<stdio.h>|
Imain()I
l{I
IFILE*fp;|
Ifp=fopen("C:\\WPS\\WPS.EXE"/"r+b");|
FILE*fdopen(intahndle,char*type)
FILE*freopen(char"filename,char*typezFILE*stream)
intgetc(FILE*stream)從流stream中讀一個字符,并返回這個字符
intputc(intchzFILE"stream)向流stream寫入一個字符ch
intgetw(FILE"stream)從流stream讀入一個整數(shù),錯誤返回EOF
intputw(intwzFILE*stream)向流stream寫入一個整數(shù)
intungetc(charc,FILE*stream)把字符c退Pl給流stream,下一次讀進(jìn)的字符將是c
intfgetc(FILE"stream)從流stream處讀一個字符,并返回這個字符
intfputc(intchzFILE*stream)將字符ch寫入流stream中
char*fgets(char*string,intnzFILE*stream)從流stream中讀n個字符存入string中
intfputs(char"string,FILE*stream)將字符串string寫入流stream中
intfread(void*ptr;intsize,intnitemszFILE*stream)從流stream中讀入nitems
個長度為size的字符串存入ptr中
intfwrite(void*ptr;intsize,intnitemszFILE*stream)向流stream中寫入nitems
個長度為size的字符串,字符串在ptr中
intfscanf(FILE*streamzchar*format[,argumentz...])以格式化形式從流stream中
讀入一個字符串
intvfscanf(FILE*streamzchar"format,Valistparam)以格式化形式從流stream中
讀入一個字符串,參數(shù)從Valistparam中取得
intfprintf(FILE"stream,char*format[,argument,…])以格式化形式將一個字符
串寫給指定的流stream
intvfprintf(FILE*streamzchar*formatzValistparam)以格式化形式將一個字符
串寫給指定的流stream,參數(shù)從Valistparam中取得
intfseek(FILE*stream,longoffset,intfromwhere)函數(shù)把文件指針移到fromwhere
所指位置的向后offset個字節(jié)處,fromwhere可以為以下值:
SEEK_SET文件開關(guān)SEEK_CUR當(dāng)前位置SEEK.END文件尾
longftell(FILE*stream)函數(shù)返回定位在stream中的當(dāng)前文件指針位置,以字節(jié)表示
intrewind(FILE*stream)將當(dāng)前文件指針stream移到文件開頭
intfeof(FILE*stream)檢測流stream上的文件指針是否在結(jié)束位置
intfileno(FILE"stream)取流stream上的文件處理,并返回文件處理
inifeiro「(FILE*sl「eam)檢測流sl「edm上是否有讀寫錯誤,如有錯誤就返回1
voidclearerr(FILE*stream)清除流stream上的讀寫錯誤
voidsetbuf(FILE*streamzchar*bjf)給流stream指定一個緩沖區(qū)buf
voidsetvbuf(FILE*streamzchar*bu£inttype,unsignedsize)
給流stream指定一個緩沖區(qū)buf,大小為size,類型為typeztype的值見下表
type值|意義
」OFBF|文件是完全緩沖區(qū),當(dāng)緩沖區(qū)是空時,下一個輸入操作將企圖填滿整個緩|
I沖區(qū).在輸出時,在把任何數(shù)據(jù)寫到文件之前,將完全填充緩沖區(qū),I
」OLBF|文件是行緩沖區(qū).當(dāng)緩沖區(qū)為空時,下一個輸入操作將仍然企圖填整個緩|
I沖區(qū),然而在輸出時,每當(dāng)新行符寫到文件,緩沖區(qū)就被清洗掉.I
」ONBF|文件是無緩沖的.buf和size參數(shù)是被忽略的.每個輸入操作將直接從文|
I件讀,每個輸出操作將立即把數(shù)據(jù)寫到文件中,I
intfclose(FILE"stream)關(guān)閉一個流,可以是文件或設(shè)備(例如LPT1)
intfcloseall()關(guān)閉所有除stdin或stdout外的流
intfflush(FILE*stream)關(guān)閉一個流,并對緩沖區(qū)作處理
處理即對讀的流,將流內(nèi)內(nèi)容讀入緩沖區(qū);
對寫的流,將緩沖區(qū)內(nèi)內(nèi)容寫入流。成功返回0
intfflushallO關(guān)閉所有流,并對流各自的緩沖區(qū)作處理
處理即對讀的流,將流內(nèi)內(nèi)容讀入緩沖區(qū):
對寫的流,將緩沖區(qū)內(nèi)內(nèi)容寫入流。成功返回0
intaccess(char"filename,intamode)本函數(shù)檢查文件filename并返回文件的屬性,
函數(shù)將屬性存于amode中,amode由以下位的組合構(gòu)成
06可以讀、寫04可以讀02可以寫01執(zhí)行(忽略的)00文件存在
如果filename是一個目錄,函數(shù)將只確定目錄是否存在
函數(shù)執(zhí)行成功返回0,否則返回-1
intchmod(char"filename,intpermiss)本函數(shù)用于設(shè)定文件filename的屬性
permiss可以為以下值
S」WRITE允許寫S」READ允許讀SJREAD|SJWRITE允許讀、寫
int_chmod(char*filename,intfunc[,intattrib]);
本函數(shù)用于讀取或設(shè)定文件filename的屬性,
當(dāng)func=0時,函數(shù)返回文件的屬性;當(dāng)func=l時,函數(shù)設(shè)定文件的屬性
若為設(shè)定文件屬性,attrib可以為下列常數(shù)之一
FA_RDONLY只讀FA_HIDDEN隱藏FA_SYSTEM系統(tǒng)
接口子程序,所在函數(shù)庫為:dos?h、bios.h
unsignedsleep(unsignedseconds)暫停seconds微秒(百分之一秒)
intunlink(char"filename)刪除文件filename
unsignedFP_OFF(voidfar*farptr)本函數(shù)用來取遠(yuǎn)指針farptr的偏移量
unsignedFP_SEG(void*方中1「)本函數(shù)用來沒置遠(yuǎn)指針2中1「的段值
voidfar*MK_FP(unsignedsegzunsgnedoff)根據(jù)段seg和偏移量。仟構(gòu)造一個far指針
unsignedgetpsp。取程序段前綴的段地址,并返回這個地址
char*parsfnm(char*cmdlinezstructfcb*fcbpti;intoption)
函數(shù)分析一個字符串,通常,對一個文件名來說,是由cmdline所指的一個命令行.
文件名是放入一個FCB中作為一個驅(qū)動器,文件名和擴(kuò)展名.FCB是由fcbptr所指
定的.option參數(shù)是DOS分析系統(tǒng)調(diào)用時,AL文本的值.
intabsread(intdrivejntnsectsjntsectnozvoid"buffer)本函數(shù)功能為讀特定的
磁盤扇區(qū),drive為驅(qū)動器號(O=A,1=B等),nsects為要讀的扇區(qū)數(shù),sectno為開始的邏
輯扇區(qū)號,buffer為保存所讀數(shù)據(jù)的保存空間
intabswrite(intdrivejntnsectsjntsectnozvoid*buffer)本函數(shù)功能為寫特定的
磁盤扇區(qū),drive為驅(qū)動器號(O=A,1=B等),nsects為要寫的扇區(qū)數(shù),sectno為開始的邏
輯扇區(qū)號,buffer為保存所寫數(shù)據(jù)的所在空間
voidgetdfree(intdrive,structdfree*dfreep)本函數(shù)用來取磁盤的自由空間,
drive為磁盤號(0=當(dāng)前,1=A等).函數(shù)將磁盤特性的由dfreep指向的dfree結(jié)構(gòu)中.
dfree結(jié)構(gòu)如下:
structdfree
{I
unsigneddf_avail;/*有用簇個數(shù)*/|
unsigneddf_total;/*總共簇個數(shù)*/|
unsigneddf_bsec;/*每個扇區(qū)字節(jié)數(shù)*/I
unsigneddf_sdus;/*每個簇娟區(qū)數(shù)*/|
}I
charfar*getdta()取磁盤轉(zhuǎn)換地址DTA
voidsetdta(charfar*dta)設(shè)置磁盤轉(zhuǎn)換地址DTA
voidgetfat(intdrive,fatinfo*fatblkp)
本函數(shù)返回指定驅(qū)動器d「ive(0=當(dāng)前,1=A,2=B等)的文件分配表信息
并存入結(jié)構(gòu)fatblkp中,結(jié)構(gòu)如下:
structfatinfo
{I
charfLsclus;/*每個簇扇區(qū)數(shù)*/I
charfi_fatid;/*文件分配表字節(jié)數(shù)*/I
intfLndus;/*簇的數(shù)目*/I
intfLbysec;/*每個用區(qū)字節(jié)數(shù)*/I
}I
voidgetfatd(structfatinfo*fatblkp)本函數(shù)返回當(dāng)前驅(qū)動器的文件分配表信息,
并存入結(jié)構(gòu)fatblkp中,結(jié)構(gòu)如下:
structfatinfo
(I
charfi_sclus;/*每個簇扇區(qū)數(shù)*/|
charfi_fatid;/*文件分配表字節(jié)數(shù)*/I
intfLnclus;/*簇的數(shù)目*/|
intfi_bysec;/*每個扇區(qū)字節(jié)數(shù)*/|
}I
intbdos(intdosfun,unsigneddosdx,unsigneddosal)木函數(shù)對MSDOS系統(tǒng)進(jìn)行調(diào)用,
dosdx為寄存器dx的值,dosal為寄存器al的值,dosfun為功能號
intbdosptr(intdosfun,void"argument,unsigneddosal)木函數(shù)對MSDOS系統(tǒng)進(jìn)行調(diào)用,
argument為寄存器dx的值,dosal為寄存器al的值,dosfun為功能號
intint86(intintr_numzunionREGS*inregs,unionREGS*outregs)
執(zhí)行intr_num號中斷,用戶定義的寄存器值存于結(jié)構(gòu)inregs中,
執(zhí)行完后將返回的寄存器值存于結(jié)構(gòu)outregs中.
intint86x(intintr_numzunionREGS*inregs,unionREGS*outregs,
structSREGS*segregs)執(zhí)行intjnum號中斷,用戶定義的寄存器值存于
結(jié)構(gòu)inregs中和結(jié)構(gòu)segregs中,執(zhí)行完后將返回的寄存器值存于結(jié)構(gòu)outregs中.
intintdos(unionREGS*inregszunionREGS*outregs)
本函數(shù)執(zhí)行DOS中斷0x21來調(diào)用一個指定的DOS函數(shù),用戶定義的寄存器值
存于結(jié)構(gòu)inregs中,執(zhí)行完后函數(shù)將返回的寄存器值存于結(jié)構(gòu)outregs中
intintdosx(unionREGS*inregs,unionREGS*outregs,structSREGS*segregs)
本函數(shù)執(zhí)行DOS中斷0x21來調(diào)用一個指定的DOS函數(shù),用戶定義的寄存器值
存于結(jié)構(gòu)inregs和segregs中,執(zhí)行完后函數(shù)將返回的寄存器值存于結(jié)構(gòu)outregs中
voidintr(intintjnum,structREGPACK*preg)本函數(shù)中一個備用的8086軟件中斷接口
它能產(chǎn)生一個由參數(shù)intr_num指定的8086軟件中斷.函數(shù)在執(zhí)行軟件中斷前,
從結(jié)構(gòu)preg復(fù)制用戶定義的各寄存器值到各個寄存器.軟件中斷完成后,
函數(shù)將當(dāng)前各個寄存器的值復(fù)制到結(jié)構(gòu)preg中.參數(shù)如下:
intr_num被執(zhí)行的中斷號
preg為保存用戶定義的寄存器值的結(jié)構(gòu),結(jié)構(gòu)如下
structREGPACK|
{I
unsignedr_axzr_bx,r_cxzr_dx;|
unsignedr_bp,r_si,r_di,r_dsj_es,r_flags;|
)I
函數(shù)執(zhí)行完后,將新的寄存器值存于結(jié)構(gòu)preg中
voidkeep(intstatusjntsize)以status狀態(tài)返FlMSDOS,但程序仍保留于內(nèi)存中,所占
用空間由size決定.
voidctrlbrk(int(*fptr)())設(shè)置中斷后的對中斷的處理程序.
voiddisable()禁止發(fā)生中斷
voidenable()允許發(fā)生中斷
voidgeninterrupt(intintjnum)執(zhí)行由intr_num所指定的軟件中斷
voidinterrupt*getvecl(inlintr_num))()返回中斷號為inljnuin的中斷處理程序,
例如:old_int_10h=getvect(0xl0);
voidsetvect(intintr_numzvoidinterrupt(*isr)())設(shè)置中斷號為intr_num的中
斷處理程序為isr;例如:setvect(0xl0znewJnt_10h);
voidharderr(int(*fptr)())定義一個硬件錯誤處理程序,
每當(dāng)出現(xiàn)錯誤時就調(diào)用fptr所指的程序
voidhardresume(intrescode)硬件錯誤處理函數(shù)
voidhardretn(interrcode)硬件錯誤處理函數(shù)
intinport(intprot)從指定的輸入端口讀入一個字,并返回這個字
intinportb(intport)從指定的輸入端口讀入一個字節(jié),并返回這個字節(jié)
voidoutport(intport,intword)將字word寫入指定的輸出端口port
voidoutportb(intport,charbyte)將字節(jié)byte寫入指定的輸出端口port
intpeek(intsegment,unsignedoffset)函數(shù)返回segment:offset處的一個字
charpeekb(intsegment,unsignedoffset)函數(shù)返回segment:offset處的?個字節(jié)
voidpoke(intsegmentjntoffset,charvalue),各字value寫至ijsegment:offset處
voidpokeb(intsegmentjntoffsetjntvalue)將字節(jié)value寫至Usegment:offset處
intrandbrd(structfcb*fcbptr;intrecent)
函數(shù)利用打開fcbptr所指的FCB讀recent個記錄.
intrandbwr(structfcb*fcbptr;intrecent)
函數(shù)將fcbptr所指的FCB中的recent個記錄寫到磁盤上
voidsegread(structSREGS*segtbl)函數(shù)把段寄存器的當(dāng)前值放進(jìn)結(jié)構(gòu)segtbl中
intgetveri伙)取檢驗標(biāo)志的當(dāng)前狀態(tài)(0=檢驗關(guān)閉,1=檢驗打開)
voidsetverity(intvalue)設(shè)置當(dāng)前檢驗狀態(tài),
value為0表示關(guān)閉檢驗,為1表示打開檢驗
intgetebrk。本函數(shù)返回控制中斷檢測的當(dāng)前設(shè)置
intsetcbrk(intvalue)本函數(shù)用來設(shè)置控制中斷檢測為接通或斷開
當(dāng)value=0時,為斷開檢測.當(dāng)value=l時,為接開檢測
intdosexterr(structDOSERR*eblkp)取擴(kuò)展錯誤.在DOS出現(xiàn)錯誤后,此函數(shù)將擴(kuò)充的
錯誤信息填入eblkp所指的DOSERR結(jié)構(gòu)中,該結(jié)構(gòu)定義如下:
structDOSERR|
{I
intexterror;/*擴(kuò)展錯誤*/|
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 反式-14-環(huán)己烷二甲酸二甲酯DMCD行業(yè)市場發(fā)展現(xiàn)狀及趨勢與投資分析研究報告
- 2025年專業(yè)版廣告代理合同樣本(三篇)
- 機(jī)場建設(shè)工程合同
- 2025年led電子顯示屏工程承攬合同(4篇)
- 中國汽車銷售行業(yè)發(fā)展前景預(yù)測及投資戰(zhàn)略研究報告
- 中國過磁器項目投資可行性研究報告
- 年加工各類防盜門20000套項目申請報告可行性研究報告
- 個人軟件開發(fā)合同書
- 中國代碼式預(yù)收費燃?xì)獗眄椖客顿Y可行性研究報告
- 鶴崗環(huán)保水處理設(shè)備項目可行性研究報告
- 江西省部分學(xué)校2024-2025學(xué)年高三上學(xué)期1月期末英語試題(含解析無聽力音頻有聽力原文)
- 農(nóng)民工工資表格
- 【寒假預(yù)習(xí)】專題04 閱讀理解 20篇 集訓(xùn)-2025年人教版(PEP)六年級英語下冊寒假提前學(xué)(含答案)
- 2024年智能監(jiān)獄安防監(jiān)控工程合同3篇
- 2024年度窯爐施工協(xié)議詳例細(xì)則版B版
- 幼兒園籃球課培訓(xùn)
- 項目監(jiān)理策劃方案匯報
- 《職業(yè)培訓(xùn)師的培訓(xùn)》課件
- 建筑企業(yè)新年開工儀式方案
- 一例產(chǎn)后出血的個案護(hù)理
- 急診與災(zāi)難醫(yī)學(xué)課件 03 呼吸困難大課何琳zhenshi
評論
0/150
提交評論