版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C#函數(shù)手冊(cè)
C庫(kù)函數(shù)手冊(cè)
分類(lèi)函數(shù),所在函數(shù)庫(kù)為ctype.h
intisalpha(intch)若ch是字母('A'-'Z','a'-'z。返回非0值,否則返回0
intisalnum(intch)若ch是字母('A'-Z,'a'-'z')或數(shù)字('。'-'驢
返回非0值,否則返回0
intisascii(intch)若ch是字符(ASCII碼中的0-127)返回非0值,否則返回0
intiscntrl(intch)若ch是作廢字符(0x7F)或普通控制字符(0x00-0xlF)
返回非0值,否則返回0
intisdigit(intch)若ch是數(shù)字(。-9)返回非0值,否則返回0
intisgraph(intch)若ch是可打印字符(不含空格M0x21-0x7E)返回非0值,否則返回0
intislower(intch)若ch是小寫(xiě)字母(才-2)返回非0值,否則返回0
intisprint(intch)若ch是可打印字符(含空格X0x20-0x7E)返回非0值,否則返回0
intispunct(intch)若ch是標(biāo)點(diǎn)字符(OxOO-OxlF)返回非0值,否則返回0
intisspace(intch)若ch是空格(,'),水平制表符('\竹,回車(chē)符(、門(mén),
走紙換行(、行,垂直制表符('W),換行符('\尸)
返回非0值,否則返回0
intisupper(intch)若ch是大寫(xiě)字母(7V-Z)返回非0值,否則返回0
intisxdigit(intch)若ch是16進(jìn)制數(shù)匕5)返回非0值,
否則返回0
inttolowerfintch)若ch是大寫(xiě)字母('A'-'Z')返回相應(yīng)的小寫(xiě)字母('a'-'z')
inttoupper(intch)若ch是小寫(xiě)字母(H-N)返回相應(yīng)的大寫(xiě)字母(K-Z)
數(shù)學(xué)函數(shù),所在函數(shù)庫(kù)為math.h^stdlib.h^string.h>float.h
intabs(inti)返回整型參數(shù)i的絕對(duì)值
doublecabs(structcomplexznum)返回復(fù)數(shù)znum的絕對(duì)值
doublefabs(doublex)返回雙精度參數(shù)x的絕對(duì)值
longlabs(longn)返回長(zhǎng)整型參數(shù)n的絕對(duì)值
doubleexp(doublex)返回指數(shù)函數(shù)ex的值
doublefrexp(doublevalue,int*eptr)返回value=x*2n中x的值,n存貯在eptr中
doubleldexp(doublevaluejntexp);返回value*2exp的值
doublelog(doublex)返回logex的值
doubleIogl0(doublex)返回loglOx的值
doublepow(doublex,doubley)返回xy的值
doublepowl0(intp)返回10p的值
doublesqrt(doublex)返回+Jx的值
doubleacos(doublex)返回x的反余弦cos-l(x)值,x為弧度
doubleasin(doublex)返回x的反正弦sin-l(x)值,x為弧度
doubleatan(doublex)返回x的反正切tan-l(x)值,x為弧度
doubleatan2(doubley,doublex)返回y/x的反正切tan-l(x)Cy的x為弧度
doublecos(doublex)返回X的余弦cos(x)值,X為弧度
doublesin(doublex)返回x的正弦sin(x)值,x為弧度
doubletan(doublex)返回x的正切tan(x)值,x為弧度
doublecosh(doublex)返回x的雙曲余弦cosh(x)值,x為弧度
doublesinh(doublex)返回x的雙曲正弦sinh(x)值,x為弧度
doubletanh(doublex)返回x的雙曲正切tanh(x)值,x為弧度
doublehypot(doublex,doubley)返回直角三角形斜邊的長(zhǎng)度⑵,
x和y為直角邊的長(zhǎng)度,z2=x2+y2
doubleceil(doublex)返回不小于x的最小整數(shù)
doublefloor(doublex)返回不大于x的最大整數(shù)
voidsrand(unsignedseed)初始化隨機(jī)數(shù)發(fā)生器
intrand()產(chǎn)生一個(gè)隨機(jī)數(shù)并返回這個(gè)數(shù)
doublepoly(doublex,intn,doublec口)從參數(shù)產(chǎn)生一個(gè)多項(xiàng)式
doublemodf(doublevalue,double*iptrj將雙精度數(shù)value分解成尾數(shù)和階
doublefmod(doublex,doubley)返回x/y的余數(shù)
doublefrexp(doublevaluejnt*eptr)將雙精度數(shù)value分成尾數(shù)和階
doubleatof(char*nptr)將字符串nptr轉(zhuǎn)換成浮點(diǎn)數(shù)并返回這個(gè)浮點(diǎn)數(shù)
doubleatoi(char*nptr)將字符串nptr轉(zhuǎn)換成整數(shù)并返回這個(gè)整數(shù)
doubleatol(char*nptr)將字符串nptr轉(zhuǎn)換成長(zhǎng)整數(shù)并返回這個(gè)整數(shù)
char*ecvt(doublevaluejntndigitjnt*decpt,int*sign)
將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串
char*fcvt(doublevaluejntndigitjnt*decpt,int*sign)
將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串
char*gcvt(doublevaluejntndigit,char*buf)
將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針
char*ultoa(unsignedlongvalue,char*string,intradix)
將無(wú)符號(hào)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)
char*ltoa(longvalue,char*string,intradix)
將長(zhǎng)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)
char*itoa(intvalue,char*string,intradix)
將整數(shù)轉(zhuǎn)換成字符串存入為轉(zhuǎn)換時(shí)所用基數(shù)
valuestringzradix
doubleatof(char*nptr)將字符串nptr轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0
intatoi(char*nptr)將字符串nptr轉(zhuǎn)換成整型數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0
longatol(char*nptr)將字符串nptr轉(zhuǎn)換成長(zhǎng)整型數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0
doublestrtodfchar*str,char"endptrj將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),
longstrtol(char*sti;char**endptr;intbase)將字符串str轉(zhuǎn)換成長(zhǎng)整型數(shù),
并返回這個(gè)數(shù),
intmatherr(structexception*e)
用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)
double_matherr(_mexcepwhy,char*fun,double*arglpz
double*arg2p,doubleretval)
用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)
unsignedint_clear87()清除浮點(diǎn)狀態(tài)字并返回原來(lái)的浮點(diǎn)狀態(tài)
voidJpresetO重新初使化浮點(diǎn)數(shù)學(xué)程序包
unsignedint_status87()返回浮點(diǎn)狀態(tài)字
目錄函數(shù),所在函數(shù)庫(kù)為dir.h、dos.h
intchdir(char*path)使指定的目錄path(如:"C:\\WPS")變成當(dāng)前的工作目錄,成
功返回0
intfindfirst(char*pathname,structffblk*ffblk,intattrib)查找指定的文件,成功
返回0
pathname為指定的目錄名和文件名,如"C:\\WPS\\TXT"
ffblk為指定的保存文件信息的一個(gè)結(jié)構(gòu),定義如下;
structffblk
(
charff_reserved[21];/*DOS保留字*/
charff_attrib;/*文件屬性*/
int/*文件時(shí)間*/
intff_fdate;/*文件日期*/
longff_fsize;/*文件長(zhǎng)度*/
charff_name[13];/*文件名*/
attrib為文件屬性,由以下字符代表
|FA_RDONLY只讀文件|FA_LABEL卷標(biāo)號(hào)1
|FA_HIDDEN隱藏文件|FA_DIREC目錄1
|FA_SYSTEM系統(tǒng)文件|FA_ARCH檔案1
111
例:
structffblkff;
findfirst("*.wps",&ff;FA_RDONLY);
intfindnext(structffblk*ffblk)取匹配finddirst的文件,成功返回0
voidfumerge(char*path,char*drive,char*dir,char*name,char*ext)
此函數(shù)通過(guò)盤(pán)符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),
文件名name(TC、WPS等),擴(kuò)展名ext(.EXE、.COM等)組成一個(gè)文件名
存與path中.
intfnsplit(char*path,char*drive,char*dir;char*name,char*ext)
此函數(shù)將文件名path分解成盤(pán)符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),
文件名name(TC、WPS等),擴(kuò)展名ext(.EXE、.COM等),并分別存入相應(yīng)的變量中.
intgetcurdir(intdrive,char*direc)此函數(shù)返回指定驅(qū)動(dòng)器的當(dāng)前工作目錄名稱
drive指定的驅(qū)動(dòng)器(0=當(dāng)前,1=A,2=B,3=C等)
direc保存指定驅(qū)動(dòng)器當(dāng)前工作路徑的變量成功返回0
char*getcwd(char*buf,iintn)此函數(shù)取當(dāng)前工作目錄并存入buf中,直到n個(gè)字
節(jié)長(zhǎng)為為止.錯(cuò)誤返回NULL
intgetdisk()取當(dāng)前正在使用的驅(qū)動(dòng)器,返回一個(gè)整數(shù)(0=A,l=B,2=C等)
intsetdisk(intdrive)設(shè)置要使用的驅(qū)動(dòng)器drive(0=A,:l=B,2=C等),
返回可使用驅(qū)動(dòng)器總數(shù)
intmkdir(char*pathname)建立一個(gè)新的目錄pathname,成功返回0
intrmdir(char*pathname)刪除一個(gè)目錄pathname,成功返回0
char*mktemp(char*template)構(gòu)造一個(gè)當(dāng)前目錄上沒(méi)有的文件名并存于template中
char*searchpath(char*pathname)利用MSDOS找出文件filename所在路徑,
,此函數(shù)使用DOS的PATH變量,未找到文件返回NULL
進(jìn)程函數(shù),所在函數(shù)庫(kù)為stdlib.h、process.h
voidabort()此函數(shù)通過(guò)調(diào)用具有出口代碼3的_exit寫(xiě)一個(gè)終止信息于stderr,
并異常終止程序。無(wú)返回值
intexec…裝入和運(yùn)行其它程序
intexecl(char*pathname,char*argO,char*argl/...,char*argn,NULL)
intexecle(char*pathname,char*argO,char*argl,...z
char*argn,NULL,char*envp[])
intexeclp(char"pathname,char*argOzchar*argl/.../NULL)
intexeclpe(char*pathname,char*argO,char*argl,.../NULL,char*envp[])
intexecv(char*pathname,char*argv[])
intexecve(char*pathname,char*argv[],char*envp[])
intexecvp(char*pathname,char*argv[])
intexecvpe(char*pathname,char*argv[]zchar*envp[])
exec函數(shù)族裝入并運(yùn)行程序pathname,并將參數(shù)
arg0(argl,arg2,argv[],envp口)傳遞給子程序,出錯(cuò)返回-1
在exec函數(shù)族中,后綴I、v、p、e添加到exec后,
所指定的函數(shù)將具有某種操作能力
有后綴p時(shí),函數(shù)可以利用DOS的PATH變量查找子程序文件。
I時(shí),函數(shù)中被傳遞的參數(shù)個(gè)數(shù)固定。
v時(shí),函數(shù)中被傳遞的參數(shù)個(gè)數(shù)不固定。
0時(shí);函數(shù)傳遞指定參數(shù)envp,允許改變子進(jìn)程的環(huán)境,
無(wú)后綴e時(shí),子進(jìn)程使用當(dāng)前程序的環(huán)境。
void_exit(intstatus)終止當(dāng)前程序,但不清理現(xiàn)場(chǎng)
voidexit(intstatus)終止當(dāng)前程序,關(guān)閉所有文件,寫(xiě)緩沖區(qū)的輸出(等待輸出),
并調(diào)用任何寄存器的”出口函數(shù)“,無(wú)返回值
intspawn…運(yùn)行子程序
intspawnl(intmode,char"pathname,char*argO,char*argl/.../
char*argn,NULL)
intspawnle(intmode,char*pathname,char*argO,char*argl,...z
char*argn,NULL,char*envp[])
intspawnlp(intmode,char*pathname,char*argO,char*argl,...,
char*argn,NULL)
intspawnlpe(intmode,char*pathname,char*argO,char*arglz...,
char*argn,NULL,char*envp[])
intspawnv(intmode,char"pathname,char*argv[])
intspawnve(intmode,char*pathname,char*argv[],char*envp[])
intspawnvp(intmode,char*pathnamezchar*argv[])
intspawnvpe(intmode,char*pathname,char*argv[]/char*envp[])
spawn函數(shù)族在mode模式下運(yùn)行子程序pathname,并將參數(shù)
arg0(argl,arg2,argv口,envp口)傳遞給子程序.出錯(cuò)返回-1
mode為運(yùn)行模式
mode為P_WAIT表示在子程序運(yùn)行完后返回本程序
P_NOWAIT表示在子程序運(yùn)行時(shí)同時(shí)運(yùn)行本程序(不可用)
P.OVERLAY表示在本程序退出后運(yùn)行子程序
在spawn函數(shù)族中,后綴I、v、p、e添加到spawn后,
所指定的函數(shù)將具有某種操作能力
有后綴p時(shí),函數(shù)利用DOS的PATH查找子程序文件
I時(shí),函數(shù)傳遞的參數(shù)個(gè)數(shù)固定.
v時(shí),函數(shù)傳遞的參數(shù)個(gè)數(shù)不固定.
e時(shí),指定參數(shù)envp可以傳遞給子程序,允許改變子程序運(yùn)行環(huán)境.
當(dāng)無(wú)后綴e時(shí),子程序使用本程序的環(huán)境.
intsystem(char*command)將MSDOS命令command傳遞給DOS執(zhí)行
轉(zhuǎn)換子程序,函數(shù)庫(kù)為math.h、stdlib.h>ctype.h,float.h
char*ecvt(doublevalue,intndigitjnt*decpt,int*sign)
將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串
char*fcvt(doublevalue,intndigitjnt*decpt,int*sign)
將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串
char*gcvt(doublevalue,intndigit,char*buf)
將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針
char*ultoa(unsignedlongvalue,char*string;intradix)
將無(wú)符號(hào)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)
char*ltoa(longvalue,char*string,intradix)
將長(zhǎng)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)
char*itoa(intvalue,char*string,intradix)
將整數(shù)value轉(zhuǎn)換成字符串存入string,radix為轉(zhuǎn)換時(shí)所用基數(shù)
doubleatof(char*nptr)將字符串nptr轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0
intatoi(char*nptr)將字符串nptr轉(zhuǎn)換成整型數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0
longatol(char*nptr)將字符串nptr轉(zhuǎn)換成長(zhǎng)整型數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0
doublestrtod(char*str,char**endptr)將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),
longstrtol(char*str,char**endptr,intbase)將字符用str轉(zhuǎn)換成長(zhǎng)整型數(shù),
并返回這個(gè)數(shù),
inttoascii(intc)返回c相應(yīng)的ASCII
inttolower(intch)若ch是大寫(xiě)字母('A'-'Z')返回相應(yīng)的小寫(xiě)字母('a」z')
int_tolower(intch)返回ch相應(yīng)的小寫(xiě)字母「a'-'z')
inttoupper(intch)若ch是小寫(xiě)字母Ca'-'z)返回相應(yīng)的大寫(xiě)字母(W-'Z')
int_toupper(intch)返回ch相應(yīng)的大寫(xiě)字母('A'-'Z')
診斷函數(shù),所在函數(shù)庫(kù)為assert.h、math.h
voidassert(inttest)一個(gè)擴(kuò)展成if語(yǔ)句那樣的宏,如果test測(cè)試失敗,
就顯示一個(gè)信息并異常終止程序,無(wú)返回值
voidperror(char*string)本函數(shù)將顯示最近一次的錯(cuò)誤信息,格式如下:
字符串string:錯(cuò)誤信息
char*strerror(char*str)本函數(shù)返回最近一次的錯(cuò)誤信息,格式如下:
字符串str:錯(cuò)誤信息
intmatherr(structexception*e)
用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)
double_matherr(_mexcepwhy,char*fun,double*arglp,
double*arg2p,doubleretval)
用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)
輸入輸出子程序,函數(shù)庫(kù)為io.h、conio.hxstat.h、dos.h>stdio.h>signal.h
intkbhit()本函數(shù)返回最近所敲的按鍵
intfgetchar()從控制臺(tái)(鍵盤(pán))讀一個(gè)字符,顯示在屏幕上
intgetch()從控制臺(tái)(鍵盤(pán))讀一個(gè)字符,不顯示在屏幕上
intputch()向控制臺(tái)(鍵盤(pán))寫(xiě)一個(gè)字符
intgetchar()從控制臺(tái)(鍵盤(pán))讀?個(gè)字符,顯示在屏幕上
intputchar()向控制臺(tái)(鍵盤(pán))寫(xiě)一個(gè)字符
intgetche()從控制臺(tái)(鍵盤(pán))讀一個(gè)字符,顯示在屏幕上
intungetch(intc)把字符c退回給控制臺(tái)(鍵盤(pán))
char*cgets(char*string)從控制臺(tái)(鍵盤(pán))讀入字符串存于string中
intscanf(char*format[,argument…])從控制臺(tái)讀入一個(gè)字符串,分別對(duì)各個(gè)參數(shù)進(jìn)行
賦值,使用BIOS進(jìn)行輸出
intvscanf(char*format,Valistparam)從控制臺(tái)讀入一個(gè)字符串,分別對(duì)各個(gè)參數(shù)進(jìn)行
賦值,使用BIOS進(jìn)行輸出,參數(shù)從Valistparam中取得
intcscanf(char*format[,argument…])從控制臺(tái)讀入一個(gè)字符串,分別對(duì)各個(gè)參數(shù)進(jìn)行
賦值,直接對(duì)控制臺(tái)作操作,比如顯示器在顯示時(shí)字符時(shí)即為直接寫(xiě)頻方式顯示
intsscanf(char*string,char*format[,argument,…])通過(guò)字符串string,分別對(duì)各個(gè)
參數(shù)進(jìn)行賦值
通過(guò)字符串分別對(duì)各個(gè)
intvsscanf(char*string,char*formatzVlistparam)string,
參數(shù)進(jìn)行賦值,參數(shù)從Vlistparam中取得
intputs(char*string)發(fā)關(guān)一個(gè)字符串string給控制臺(tái)(顯示器),
使用BIOS進(jìn)行輸出
voidcputs(char*string)發(fā)送一個(gè)字符串string給控制臺(tái)(顯示器),
直接對(duì)控制臺(tái)作操作,比如顯示器即為直接寫(xiě)頻方式顯示
intprintf(char*format[,argument/--])發(fā)送格式化字符串輸出給控制臺(tái)(顯示器)
使用BIOS進(jìn)行輸出
intvprintf(char*format,Valistparam)發(fā)送格式化字符串輸出給控制臺(tái)(顯示器)
使用BIOS進(jìn)行輸出,參數(shù)從Valistparam中取得
intcprintf(char*format[,argument/--])發(fā)送格式化字符串輸出給控制臺(tái)(顯示器),
直接對(duì)控制臺(tái)作操作,比如顯示器即為直接寫(xiě)頻方式顯示
intvcprintf(char*format,Valistparam)發(fā)送格式化字符串輸出給控制臺(tái)(顯示器),
直接對(duì)控制臺(tái)作操作,比如顯示器即為直接寫(xiě)頻方式顯示,
參數(shù)從Valistparam中取得
intsprintf(char*string,char*format[,argumentz...])
將字符串string的內(nèi)容重新寫(xiě)為格式化后的字符串
intvsprintf(char*string,char*format,Valistparam)
將字符串string的內(nèi)容重新寫(xiě)為格式化后的字符串,參數(shù)從Valistparam中取得
將文件的名稱改為
intrename(char*oldname/char*newname)oldnamenewname
intioctl(inthandlejntcmd[,int*argdx,intargcx])
本函數(shù)是用來(lái)控制輸入/輸出設(shè)備的,請(qǐng)見(jiàn)下表:
1??
Icmd值1功能
11
11
|01取出設(shè)備信息1
|11設(shè)置設(shè)備信息1
|21把a(bǔ)rgcx字節(jié)讀入由argdx所指的地址
|3I在argdx所指的地址寫(xiě)argcx字節(jié)
|41除把handle當(dāng)作設(shè)備號(hào)(0二當(dāng)前,1二A,等)之外,均和cmd=2時(shí)一樣|
|51除把handle當(dāng)作設(shè)備號(hào)(0二當(dāng)前,[=A,等)之外,均和cmd=3時(shí)一樣|
|61取輸入狀態(tài)1
|71取輸出狀態(tài)1
|81測(cè)試可換性;只對(duì)于DOS3.x|
|111置分享沖突的重算計(jì)數(shù);只對(duì)DOS3.x|
?11
int(*ssignal(intsig,int(*action)())()執(zhí)行軟件信號(hào)(沒(méi)必要使用)
intgsignal(intsig)執(zhí)行軟件信號(hào)(沒(méi)必要使用)
int_open(char*pathname,intaccess)為讀或?qū)懘蜷_(kāi)一個(gè)文件,
按后按access來(lái)確定是讀文件還是寫(xiě)文件,access值見(jiàn)下表
ii
access值1意義1
11
11
O_RDONLY1讀文件
O_WRONLY1寫(xiě)文件
O_RDWR1即讀也寫(xiě)
O_NOINHERIT1若文件沒(méi)有傳遞給子程序,則被包含1
O_DENYALL1只允許當(dāng)前處理必須存取的文件
O_DENYWRITE1只允許從任何其它打開(kāi)的文件讀
O_DENYREAD1只允許從任何其它打開(kāi)的文件寫(xiě)
O_DENYNONE1允許其它共享打開(kāi)的文件
11
intopen(char*pathname,intaccess[,intpermiss])為讀或?qū)懘蜷_(kāi)一個(gè)文件,
按后按access來(lái)確定是讀文件還是寫(xiě)文件,access值見(jiàn)下表
Iaccess值|意義
IO_RDONLY|讀文件
IO_WRONLY|寫(xiě)文件
|O_RDWR|即讀也寫(xiě)
I0_NDELAY|沒(méi)有使用;對(duì)UNIX系統(tǒng)兼容
IO_APPEND|即讀也寫(xiě),但每次寫(xiě)總是在文件尾添加|
IO.CREAT|若文件存在,此標(biāo)志無(wú)用;若不存在,建新文件|
IO_TRUNC|若文件存在,則長(zhǎng)度被截為0,屬性不變|
IO_EXCL|未用;對(duì)UNIX系統(tǒng)兼容
IO_BINARY|此標(biāo)志可顯示地給出以二進(jìn)制方式打開(kāi)文件|
IO_TEXT|此標(biāo)志可用于顯示地給出以文本方式打開(kāi)文件|
permiss為文件屬性,可為以下值:
S_IWRITE允許寫(xiě)S_IREAD允許讀S_IREAD|S」WRITE允許讀、寫(xiě)
intcreat(char*filename,intpermiss)建立一■個(gè)新文件filename,并設(shè)定
讀寫(xiě)性。permiss為文件讀寫(xiě)性,可以為以下值
S_lWRITE允許寫(xiě)S」READ允許讀S_IREAD|S」WRITE允許讀、寫(xiě)
int_creat(char*filename,intattrib)建立一個(gè)新文件filename,并設(shè)定文件
屬性。attrib為文件屬性,可以為以下值
FA_RDONLY只讀FA_HIDDEN隱藏FA_SYSTEM系統(tǒng)
intcreatnew(char*filenamt,intattrib)建立—"b新文件filename,并設(shè)定文件
屬性。attrib為文件屬性,可以為以下值
FA_RDONLY只讀FA_HIDDEN隱藏FA_SYSTEM系統(tǒng)
intcreattempfchar*filenamt,intattrib)建立?個(gè)新文件filename,并設(shè)定文件
屬性。attrib為文件屬性,可以為以下值
FA_RDONLY只讀FA_HIDDEN隱藏FA_SYSTEM系統(tǒng)
intread(inthandle,void*buf,intnbyte)從文件號(hào)為handle的文件中讀nbyte個(gè)字符
存入buf中
int_read(inthandle,void*buf,intnbyte)從文件號(hào)為handle的文件中讀nbyte個(gè)字符
存入buf中,直接調(diào)用MSDOS進(jìn)行操作.
intwrite(inthandle,void*buf,intnbyte)將buf中的nbyte個(gè)字符寫(xiě)入文件號(hào)
為handle的文件中
int_write(inthandle,void*buf,intnbyte)將buf中的nbyte個(gè)字符寫(xiě)入文件號(hào)
為handle的文件中
intdup(inthandle)復(fù)制一個(gè)文件處理指針handle,返回這個(gè)指針
intdup2(inthandle,intnewhandle)復(fù)制一個(gè)文件處理指針handle到newhandle
inteof(int*handle)檢查文件是否結(jié)束,結(jié)束返回1,否則返回0
longfilelength(inthandle)返回文件長(zhǎng)度,handle為文件號(hào)
intsetmode(inthandle,unsignedmode)本函數(shù)用來(lái)設(shè)定文件號(hào)為handle的文件的打
開(kāi)方式
intgetftimefinthandle,structftime*ftime)讀取文件號(hào)為handle的文件的時(shí)間,
并將文件時(shí)間存于ftime結(jié)構(gòu)中,成功返回0,ftime結(jié)構(gòu)如下:
|structftime
I(
|unsignedft_tsec:5;/*秒*/
unsignedft_min:6;/*分*/
unsignedft_hour:5;/*時(shí)*/
unsignedft_day:5;/*日*/
unsignedft_month:4;/*月*/
unsignedft_year:l;/*年-1980*/|
)
intsetftime(inthandle,structftime*ftime)重寫(xiě)文件號(hào)為handle的文件時(shí)間,
新時(shí)間在結(jié)構(gòu)ftime中.成功返回0.結(jié)構(gòu)ftime如下:
structftime
(
unsignedft_tsec:5;/*秒*/|
unsignedft_min:6;/*分*/
unsignedft_hour:5;/*時(shí)*/
unsignedft_day:5;/*日*/
unsignedft_month:4;/*月*/
unsignedft_year:l;/*年?1980*/|
}
longlseek(inthandle,longoffset,intfromwhere)本函數(shù)將文件號(hào)為handle的文件
的指針移到fromwhere后的第offset個(gè)字節(jié)處.
SEEK_SET文件開(kāi)關(guān)SEEK_CUR當(dāng)前位置SEEK_END文件尾
longtell(inthandle)本函數(shù)返回文件號(hào)為handle的文件指針,以字節(jié)表示
intisatty(inthandle)本函數(shù)用來(lái)取設(shè)備handle的類(lèi)型
intlock(inthandlejongoffset,longlength)對(duì)文件共享作封鎖
intunlock(inthandlejongoffsetjonglength)打開(kāi)對(duì)文件共享的封鎖
intclose(inthandle)關(guān)閉handle所表示的文件處理,handle是從_creat、create
creatnew、creattemp>dup>dup2>_open^open中的一個(gè)處調(diào)用獲得的文件處理
成功返回0否則返回;,可用于UNIX系統(tǒng)
int_close(inthandle)關(guān)閉handle所表示的文件處理,handle是從_creat、creat>
creatnew>creattemp^dup>dup2>_open^open中的一個(gè)處調(diào)用獲得的文件處理
成功返回0否則返回只能用于MSDOS系統(tǒng)
FILE*fopen(char*filename,char*type)打開(kāi)一個(gè)文件filename,打開(kāi)方式為type,
并返回這個(gè)文件指針,type可為以下字符串加上后綴
11111
1type|讀寫(xiě)性1文本〃進(jìn)制文件1建新/打開(kāi)舊文件1
??111
i111
|r1讀1文本1打開(kāi)舊的文件1
IW1寫(xiě)1文本1建新文件
Ia1添加1文本1有就打開(kāi)無(wú)則建新1
|r+1讀/寫(xiě)1不限制1打開(kāi)1
|w+1讀/寫(xiě)1不限制1建新文件
Ia+|讀/添加|不限制|有就打開(kāi)無(wú)則建新|
可加的后綴為、加表示文件以二進(jìn)制形式進(jìn)行操作,沒(méi)必要使用
tbcbt
例:I1
|#include<stdio.h>|
Imain()|
|{I
IFILE*fp;|
|fp=fopen("C:\\WPS\\WPS.EXE","r+b");|
FILE*fdopen(intahndle,char*type)
FILE*freopen(char*filename,char*type,FILE*stream)
intgetc(FILE*stream)從流stream中讀一個(gè)字符,并返回這個(gè)字符
intputc(intch,FILE"stream)向流stream寫(xiě)入一個(gè)字符ch
intgetw(FILE*stream)從流stream讀入一個(gè)整數(shù),錯(cuò)誤返回EOF
intputw(intw,FILE*stream)向流stream寫(xiě)入一個(gè)整數(shù)
intungetc(charc,FILE*stream)把字符c退回給流stream,下一次讀進(jìn)的字符將是c
intfgetc(FILE*stream)從流stream處讀一個(gè)字符,并返回這個(gè)字符
intfputc(intch,FILE*stream)將字符ch寫(xiě)入流stream中
char*fgets(char*string,intn,FILE*stream)從流stream中讀n個(gè)字符存入string中
intfputs(char*string,FILE*stream)將字符串string寫(xiě)入流stream中
從流中讀入
intfread(void*ptr;intsize,intnitemszFILE*stream)streamnitems
個(gè)長(zhǎng)度為size的字符串存入ptr中
intfwrite(void*ptointsize,intnitems,FILE*stream)向流stream中寫(xiě)入nitems
個(gè)長(zhǎng)度為size的字符串,字符串在ptr中
intfscanf(FILE*stream,char*format[,argument,…])以格式化形式從流stream中
讀入一個(gè)字符串
intvfscanf(FILE*stream,char*format,\/alistparam)以格式化形式從流stream中
讀入一個(gè)字符串,參數(shù)從Valistparam中取得
intfprintf(FILE*stream,char*format[,argument,…])以格式化形式將一個(gè)字符
串寫(xiě)給指定的流stream
intvfprintf(FILE*stream,char*format,Valistparam)以格式化形式將一個(gè)字符
串寫(xiě)給指定的流stream,參數(shù)從Valistparam中取得
intfseek(FILE*stream,longoffsetjntfromwhere)函數(shù)把文件指針移到fromwhere
所指位置的向后offset個(gè)字節(jié)處,fromwhere可以為以下值:
SEEK_SET文件開(kāi)關(guān)SEEK_CUR當(dāng)前位置SEEK_END文件尾
longftell(FILE*stream)函數(shù)返回定位在stream中的當(dāng)前文件指針位置,以字節(jié)表示
intrewind(FILE*stream)將當(dāng)前文件指針stream移到文件開(kāi)頭
intfeof(FILE*stream)檢測(cè)流stream上的文件指針是否在結(jié)束位置
intfileno(FILE*stream)取流stream上的文件處理,并返回文件處理
intferror(FILE*stream)檢測(cè)流stream上是否有讀寫(xiě)錯(cuò)誤,如有錯(cuò)誤就返回1
voidclearerr(FILE*stream)清除流stream上的讀寫(xiě)錯(cuò)誤
voidsetbuf(FILE*stream,char*buf)給流stream指定一個(gè)緩沖區(qū)buf
voidsetvbuf(FILE*stream,char*buf,inttype,unsignedsize)
給流stream指定一個(gè)緩沖區(qū)buf,大小為size,類(lèi)型為type,type的值見(jiàn)下表
type值I意義
IJOFBF|文件是完全緩沖區(qū),當(dāng)緩沖區(qū)是空時(shí),下一個(gè)輸入操作將企圖填滿整個(gè)緩|
II沖區(qū).在輸出時(shí),在把任何數(shù)據(jù)寫(xiě)到文件之前,將完全填充緩沖區(qū).I
IJOLBF|文件是行緩沖區(qū).當(dāng)緩沖區(qū)為空時(shí),下一個(gè)輸入操作將仍然企圖填整個(gè)緩|
II沖區(qū),然而在輸出時(shí),每當(dāng)新行符寫(xiě)到文件,緩沖區(qū)就被清洗掉.I
IJONBF|文件是無(wú)緩沖的.buf和size參數(shù)是被忽略的,每個(gè)輸入操作將直接從文|
II件讀,每個(gè)輸出操作將立即把數(shù)據(jù)寫(xiě)到文件中.I
intfclose(FILE*stream)關(guān)閉一個(gè)流,可以是文件或設(shè)備(例如LPT1)
intfcloseall()關(guān)閉所有除stdin或stdout外的流
intfflush(FILE*stream)關(guān)閉一?個(gè)流,并對(duì)緩沖區(qū)作處理
處理即對(duì)讀的流,將流內(nèi)內(nèi)容讀入緩沖區(qū);
對(duì)寫(xiě)的流,將緩沖區(qū)內(nèi)內(nèi)容寫(xiě)入流。成功返回0
intfflushall()關(guān)閉所有流,并對(duì)流各自的緩沖區(qū)作處理
處理即對(duì)讀的流,將流內(nèi)內(nèi)容讀入緩沖區(qū);
對(duì)寫(xiě)的流,將緩沖區(qū)內(nèi)內(nèi)容寫(xiě)入流。成功返回0
intaccess(char*filename,intamode)本函數(shù)檢查文件filename并返回文件的屬性,
函數(shù)將屬性存于amode中,amode由以下位的組合構(gòu)成
06可以讀、寫(xiě)04可以讀02可以寫(xiě)01執(zhí)行(忽略的)00文件存在
如果filename是一個(gè)目錄,函數(shù)將只確定目錄是否存在
函數(shù)執(zhí)行成功返回0,否則返回-1
intchmod(char*filename,intpermiss)本函數(shù)用于設(shè)定文件filename的屬性
permiss可以為以下值
SJWRITE允許寫(xiě)SJREAD允許讀S」READ|S」WRITE允許讀、寫(xiě)
int_chmod(char*filename,intfunc[,intattrib]);
本函數(shù)用于讀取或設(shè)定文件filename的屬性,
當(dāng)func=O時(shí),函數(shù)返回文件的屬性;當(dāng)func=l時(shí),函數(shù)設(shè)定文件的屬性
若為設(shè)定文件屬性,attrib可以為下列常數(shù)之一
FA_RDONLY只讀FA_HIDDEN隱藏FA__SYSTEM系統(tǒng)
接口子程序,所在函數(shù)庫(kù)為:dos.h、bios.h
unsignedsleep(unsignedseconds)暫停seconds微秒(百分之一秒)
intunlink(char"filename)刪除文件filename
unsignedFP_OFF(voidfar*farptr)本函數(shù)用來(lái)取遠(yuǎn)指針farptr的偏移量
unsignedFP_SEG(voidfar*farptr)本函數(shù)用來(lái)沒(méi)置遠(yuǎn)指針farptr的段值
voidfar*MK__FP(unsignedseg,unsignedoff)根據(jù)段seg和偏移量off構(gòu)造一個(gè)far指針
unsignedgetpsp()取程序段前綴的段地址,并返回這個(gè)地址
char*parsfnm(char*cmdline,structfcb*fcbptr,intoption)
函數(shù)分析一個(gè)字符串,通常,對(duì)一個(gè)文件名來(lái)說(shuō),是由cmdline所指的一個(gè)命令行.
文件名是放入一個(gè)FCB中作為一個(gè)驅(qū)動(dòng)器,文件名和擴(kuò)展名.FCB是由fcbptr所指
定的.option參數(shù)是DOS分析系統(tǒng)調(diào)用時(shí),AL文本的值.
intabsread(intdrivejntnsectsjntsectno,void"buffer)本函數(shù)功能為讀特定的
磁盤(pán)扇區(qū),drive為驅(qū)動(dòng)器號(hào)(O=A,1=B等),nsects為要讀的扇區(qū)數(shù),sectno為開(kāi)始的邏
輯扇區(qū)號(hào),buffer為保存所讀數(shù)據(jù)的保存空間
intabswrite(intdrivejntnsects,intsectno,void"buffer)本函數(shù)功能為寫(xiě)特定的
磁盤(pán)扇區(qū),drive為驅(qū)動(dòng)器號(hào)(0=A,1=B等),nsects為要寫(xiě)的扇區(qū)數(shù),sectn。為開(kāi)始的邏
輯扇區(qū)號(hào),buffer為保存所寫(xiě)數(shù)據(jù)的所在空間
voidgetdfree(intdrive,structdfree*dfreep)本函數(shù)用來(lái)取磁盤(pán)的自由空間,
drive為磁盤(pán)號(hào)(0二當(dāng)前,1二A等).函數(shù)將磁盤(pán)特性的由dfreep指向的dfree結(jié)構(gòu)中.
dfree結(jié)構(gòu)如下:
structdfreeI
(
unsigneddf_avail;/*有用簇個(gè)數(shù)*/I
unsigneddf_total;/*總共簇個(gè)數(shù)*/|
unsigneddf_bsec;/*每個(gè)扇區(qū)字節(jié)數(shù)*/|
unsigneddf_sclus;/*每個(gè)簇扇區(qū)數(shù)*/|
}
charfar*getdta()取磁盤(pán)轉(zhuǎn)換地址DTA
voidsetdta(charfar*dta)設(shè)置磁盤(pán)轉(zhuǎn)換地址DTA
voidgetfat(intdrive,fatinfo*fatblkp)
本函數(shù)返回指定驅(qū)動(dòng)器drive(0=當(dāng)前」二A,2二B等)的文件分配表信息
并存入結(jié)構(gòu)fatblkp中,結(jié)構(gòu)如下:
structfatinfoI
(
charfi_sdus;/*每個(gè)簇扇區(qū)數(shù)*/|
charfi_fatid;/*文件分配表字節(jié)數(shù)*/|
intfi_nclus;/*簇的數(shù)目*/|
intfi_bysec;/*每個(gè)扇區(qū)字節(jié)數(shù)*/|
}
voidgetfatd(structfatinfo*fatblkp)本函數(shù)返回當(dāng)前驅(qū)動(dòng)器的文件分配表信息,
并存入結(jié)構(gòu)fatblkp中,結(jié)構(gòu)如下:
structfatinfo
charfi_sclus;/*每個(gè)簇扇區(qū)數(shù)*/|
charfi_fatid;/*文件分配表字節(jié)數(shù)*/|
intfi_nclus;/*簇的數(shù)目*/|
intfi_bysec;/*每個(gè)扇區(qū)字節(jié)數(shù)*/|
intbdos(intdosfun,unsigneddosdx,unsigneddosal)本函數(shù)對(duì)MSDOS系統(tǒng)進(jìn)行調(diào)用,
dosdx為寄存器dx的值,dosal為寄存器al的值,dosfun為功能號(hào)
intbdosptr(intdosfun,void*argument,unsiigneddosal)本函數(shù)對(duì)MSDOS系統(tǒng)進(jìn)行調(diào)用,
argument為寄存器dx的值,dosal為寄存器al的值,dosfun為功能號(hào)
intint86(intintjnum,unionREGS*inregs,unionREGS*outregs)
執(zhí)行intr_num號(hào)中斷,用戶定義的寄存器值存于結(jié)構(gòu)inregs中,
執(zhí)行完后將返回的寄存器值存于結(jié)構(gòu)outregs中.
intint86x(intintr_num,unionREGS*inregs,unionREGS*outregs,
structSREGS*segregs)執(zhí)行intr_num號(hào)中斷,用戶定義的寄存器值存于
結(jié)構(gòu)inregs中和結(jié)構(gòu)segregs中,執(zhí)行完后將返回的寄存器值存于結(jié)構(gòu)outregs中.
intintdos(unionREGS*inregs,unionREGS*outregs)
本函數(shù)執(zhí)行DOS中斷0x21來(lái)調(diào)用一個(gè)指定的DOS函數(shù),用戶定義的寄存器值
存于結(jié)構(gòu)inregs中,執(zhí)行完后函數(shù)將返回的寄存器值存于結(jié)構(gòu)outregs中
intintdosx(unionREGS*inregs,unionREGS*outregs,structSREGS*segregs)
本函數(shù)執(zhí)行DOS中斷0x21來(lái)調(diào)用一個(gè)指定的DOS函數(shù),用戶定義的寄存器值
存于結(jié)構(gòu)inregs和segregs也執(zhí)行完后函數(shù)將返回的寄存器值存于結(jié)構(gòu)outregs中
voidintr(intintr__num,structREGPACK*preg)本函數(shù)中一個(gè)備用的8086軟件中斷接口
它能產(chǎn)生一個(gè)由參數(shù)intr_num指定的8086軟件中斷.函數(shù)在執(zhí)行軟件中斷前,
從結(jié)構(gòu)preg復(fù)制用戶定義的各寄存器值到各個(gè)寄存器.軟件中斷完成后,
函數(shù)將當(dāng)前各個(gè)寄存器的值復(fù)制到結(jié)構(gòu)preg中.參數(shù)如下:
intr_num被執(zhí)行的中斷號(hào)
preg為保存用戶定義的寄存器值的結(jié)構(gòu),結(jié)構(gòu)如下
|structREGPACK
I(
Iunsignedr_ax,r_bx,r_cx,r_dx;
Iunsignedr_bp,r_si,r_di,r_ds,r_es,r_fIags;i
函數(shù)執(zhí)行完后,將新的寄存器值存于結(jié)構(gòu)preg中
voidkeep(intstatusjntsize)以status狀態(tài)返回MSDOS,但程序仍保留于內(nèi)存中,所占
用空間由size決定.
voidctrlbrk(int(*fptr)())設(shè)置中斷后的對(duì)中斷的處理程序.
voiddisable()禁止發(fā)生中斷
voidenable()允許發(fā)生中斷
voidgeninterrupt(intintr_num)執(zhí)行由intr__num所指定的軟件中斷
voidinterrupt(*getvect(intintr_num))()返回中斷號(hào)為intr_num的中斷處理程序,
例如:old_int_10h=getvect(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版機(jī)床進(jìn)出口買(mǎi)賣(mài)合同范本詳析2篇
- 2024年禁牧區(qū)水資源保護(hù)與管理合同
- 專(zhuān)業(yè)化油漆施工協(xié)議(2024年版)版B版
- 二零二五年高性能環(huán)保材料供應(yīng)與技術(shù)研發(fā)協(xié)議2篇
- 天府新區(qū)職業(yè)學(xué)院《信息內(nèi)容安全的理論與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版快遞行業(yè)專(zhuān)用包裝材料供應(yīng)協(xié)議2篇
- 2024版股權(quán)投資協(xié)議(投資金額和股權(quán)比例)3篇
- 2024運(yùn)輸管理實(shí)訓(xùn)機(jī)構(gòu)運(yùn)營(yíng)合作協(xié)議3篇
- 天津商業(yè)大學(xué)寶德學(xué)院《圖像處理與機(jī)器視覺(jué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年高端混凝土預(yù)制構(gòu)件委托加工合同3篇
- 大同市陽(yáng)高縣王官屯50MW風(fēng)電項(xiàng)目220kV升壓站及送出工程環(huán)評(píng)報(bào)告
- GB/T 2992-1998通用耐火磚形狀尺寸
- 英語(yǔ)名著閱讀老人與海教學(xué)課件(the-old-man-and-the-sea-)
- 學(xué)校食品安全知識(shí)培訓(xùn)課件
- 全國(guó)醫(yī)學(xué)博士英語(yǔ)統(tǒng)一考試詞匯表(10000詞全) - 打印版
- 最新《會(huì)計(jì)職業(yè)道德》課件
- DB64∕T 1776-2021 水土保持生態(tài)監(jiān)測(cè)站點(diǎn)建設(shè)與監(jiān)測(cè)技術(shù)規(guī)范
- ?中醫(yī)院醫(yī)院等級(jí)復(fù)評(píng)實(shí)施方案
- 數(shù)學(xué)-九宮數(shù)獨(dú)100題(附答案)
- 理正深基坑之鋼板樁受力計(jì)算
- 學(xué)校年級(jí)組管理經(jīng)驗(yàn)
評(píng)論
0/150
提交評(píng)論