版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C#函數(shù)手冊
C庫函數(shù)手冊
分類函數(shù),所在函數(shù)庫為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是小寫字母(才-2)返回非0值,否則返回0
intisprint(intch)若ch是可打印字符(含空格X0x20-0x7E)返回非0值,否則返回0
intispunct(intch)若ch是標(biāo)點(diǎn)字符(OxOO-OxlF)返回非0值,否則返回0
intisspace(intch)若ch是空格(,'),水平制表符('\竹,回車符(、門,
走紙換行(、行,垂直制表符('W),換行符('\尸)
返回非0值,否則返回0
intisupper(intch)若ch是大寫字母(7V-Z)返回非0值,否則返回0
intisxdigit(intch)若ch是16進(jìn)制數(shù)匕5)返回非0值,
否則返回0
inttolowerfintch)若ch是大寫字母('A'-'Z')返回相應(yīng)的小寫字母('a'-'z')
inttoupper(intch)若ch是小寫字母(H-N)返回相應(yīng)的大寫字母(K-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*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)返回直角三角形斜邊的長度⑵,
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(doublex,intn,doublec口)從參數(shù)產(chǎn)生一個多項(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ù)并返回這個浮點(diǎn)數(shù)
doubleatoi(char*nptr)將字符串nptr轉(zhuǎn)換成整數(shù)并返回這個整數(shù)
doubleatol(char*nptr)將字符串nptr轉(zhuǎn)換成長整數(shù)并返回這個整數(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)
將無符號整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時所用基數(shù)
char*ltoa(longvalue,char*string,intradix)
將長整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時所用基數(shù)
char*itoa(intvalue,char*string,intradix)
將整數(shù)轉(zhuǎn)換成字符串存入為轉(zhuǎn)換時所用基數(shù)
valuestringzradix
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
doublestrtodfchar*str,char"endptrj將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個數(shù),
longstrtol(char*sti;char**endptr;intbase)將字符串str轉(zhuǎn)換成長整型數(shù),
并返回這個數(shù),
intmatherr(structexception*e)
用戶修改數(shù)學(xué)錯誤返回信息函數(shù)(沒有必要使用)
double_matherr(_mexcepwhy,char*fun,double*arglpz
double*arg2p,doubleretval)
用戶修改數(shù)學(xué)錯誤返回信息函數(shù)(沒有必要使用)
unsignedint_clear87()清除浮點(diǎn)狀態(tài)字并返回原來的浮點(diǎn)狀態(tài)
voidJpresetO重新初使化浮點(diǎn)數(shù)學(xué)程序包
unsignedint_status87()返回浮點(diǎn)狀態(tài)字
目錄函數(shù),所在函數(shù)庫為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為指定的保存文件信息的一個結(jié)構(gòu),定義如下;
structffblk
(
charff_reserved[21];/*DOS保留字*/
charff_attrib;/*文件屬性*/
int/*文件時間*/
intff_fdate;/*文件日期*/
longff_fsize;/*文件長度*/
charff_name[13];/*文件名*/
attrib為文件屬性,由以下字符代表
|FA_RDONLY只讀文件|FA_LABEL卷標(biā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ù)通過盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),
文件名name(TC、WPS等),擴(kuò)展名ext(.EXE、.COM等)組成一個文件名
存與path中.
intfnsplit(char*path,char*drive,char*dir;char*name,char*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*buf,iintn)此函數(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*searchpath(char*pathname)利用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*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口)傳遞給子程序,出錯返回-1
在exec函數(shù)族中,后綴I、v、p、e添加到exec后,
所指定的函數(shù)將具有某種操作能力
有后綴p時,函數(shù)可以利用DOS的PATH變量查找子程序文件。
I時,函數(shù)中被傳遞的參數(shù)個數(shù)固定。
v時,函數(shù)中被傳遞的參數(shù)個數(shù)不固定。
0時;函數(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*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口)傳遞給子程序.出錯返回-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ù)固定.
v時,函數(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(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)
將無符號整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時所用基數(shù)
char*ltoa(longvalue,char*string,intradix)
將長整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時所用基數(shù)
char*itoa(intvalue,char*string,intradix)
將整數(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*str,char**endptr,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是小寫字母Ca'-'z)返回相應(yīng)的大寫字母(W-'Z')
int_toupper(intch)返回ch相應(yīng)的大寫字母('A'-'Z')
診斷函數(shù),所在函數(shù)庫為assert.h、math.h
voidassert(inttest)一個擴(kuò)展成if語句那樣的宏,如果test測試失敗,
就顯示一個信息并異常終止程序,無返回值
voidperror(char*string)本函數(shù)將顯示最近一次的錯誤信息,格式如下:
字符串string:錯誤信息
char*strerror(char*str)本函數(shù)返回最近一次的錯誤信息,格式如下:
字符串str:錯誤信息
intmatherr(structexception*e)
用戶修改數(shù)學(xué)錯誤返回信息函數(shù)(沒有必要使用)
double_matherr(_mexcepwhy,char*fun,double*arglp,
double*arg2p,doubleretval)
用戶修改數(shù)學(xué)錯誤返回信息函數(shù)(沒有必要使用)
輸入輸出子程序,函數(shù)庫為io.h、conio.hxstat.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*format,Valistparam)從控制臺讀入一個字符串,分別對各個參數(shù)進(jìn)行
賦值,使用BIOS進(jìn)行輸出,參數(shù)從Valistparam中取得
intcscanf(char*format[,argument…])從控制臺讀入一個字符串,分別對各個參數(shù)進(jìn)行
賦值,直接對控制臺作操作,比如顯示器在顯示時字符時即為直接寫頻方式顯示
intsscanf(char*string,char*format[,argument,…])通過字符串string,分別對各個
參數(shù)進(jìn)行賦值
通過字符串分別對各個
intvsscanf(char*string,char*formatzVlistparam)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[,argument/--])發(fā)送格式化字符串輸出給控制臺(顯示器),
直接對控制臺作操作,比如顯示器即為直接寫頻方式顯示
intvcprintf(char*format,Valistparam)發(fā)送格式化字符串輸出給控制臺(顯示器),
直接對控制臺作操作,比如顯示器即為直接寫頻方式顯示,
參數(shù)從Valistparam中取得
intsprintf(char*string,char*format[,argumentz...])
將字符串string的內(nèi)容重新寫為格式化后的字符串
intvsprintf(char*string,char*format,Valistparam)
將字符串string的內(nèi)容重新寫為格式化后的字符串,參數(shù)從Valistparam中取得
將文件的名稱改為
intrename(char*oldname/char*newname)oldnamenewname
intioctl(inthandlejntcmd[,int*argdx,intargcx])
本函數(shù)是用來控制輸入/輸出設(shè)備的,請見下表:
1??
Icmd值1功能
11
11
|01取出設(shè)備信息1
|11設(shè)置設(shè)備信息1
|21把a(bǔ)rgcx字節(jié)讀入由argdx所指的地址
|3I在argdx所指的地址寫argcx字節(jié)
|41除把handle當(dāng)作設(shè)備號(0二當(dāng)前,1二A,等)之外,均和cmd=2時一樣|
|51除把handle當(dāng)作設(shè)備號(0二當(dāng)前,[=A,等)之外,均和cmd=3時一樣|
|61取輸入狀態(tài)1
|71取輸出狀態(tài)1
|81測試可換性;只對于DOS3.x|
|111置分享沖突的重算計(jì)數(shù);只對DOS3.x|
?11
int(*ssignal(intsig,int(*action)())()執(zhí)行軟件信號(沒必要使用)
intgsignal(intsig)執(zhí)行軟件信號(沒必要使用)
int_open(char*pathname,intaccess)為讀或?qū)懘蜷_一個文件,
按后按access來確定是讀文件還是寫文件,access值見下表
ii
access值1意義1
11
11
O_RDONLY1讀文件
O_WRONLY1寫文件
O_RDWR1即讀也寫
O_NOINHERIT1若文件沒有傳遞給子程序,則被包含1
O_DENYALL1只允許當(dāng)前處理必須存取的文件
O_DENYWRITE1只允許從任何其它打開的文件讀
O_DENYREAD1只允許從任何其它打開的文件寫
O_DENYNONE1允許其它共享打開的文件
11
intopen(char*pathname,intaccess[,intpermiss])為讀或?qū)懘蜷_一個文件,
按后按access來確定是讀文件還是寫文件,access值見下表
Iaccess值|意義
IO_RDONLY|讀文件
IO_WRONLY|寫文件
|O_RDWR|即讀也寫
I0_NDELAY|沒有使用;對UNIX系統(tǒng)兼容
IO_APPEND|即讀也寫,但每次寫總是在文件尾添加|
IO.CREAT|若文件存在,此標(biāo)志無用;若不存在,建新文件|
IO_TRUNC|若文件存在,則長度被截為0,屬性不變|
IO_EXCL|未用;對UNIX系統(tǒng)兼容
IO_BINARY|此標(biāo)志可顯示地給出以二進(jìn)制方式打開文件|
IO_TEXT|此標(biāo)志可用于顯示地給出以文本方式打開文件|
permiss為文件屬性,可為以下值:
S_IWRITE允許寫S_IREAD允許讀S_IREAD|S」WRITE允許讀、寫
intcreat(char*filename,intpermiss)建立一■個新文件filename,并設(shè)定
讀寫性。permiss為文件讀寫性,可以為以下值
S_lWRITE允許寫S」READ允許讀S_IREAD|S」WRITE允許讀、寫
int_creat(char*filename,intattrib)建立一個新文件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)建立?個新文件filename,并設(shè)定文件
屬性。attrib為文件屬性,可以為以下值
FA_RDONLY只讀FA_HIDDEN隱藏FA_SYSTEM系統(tǒng)
intread(inthandle,void*buf,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*buf,intnbyte)將buf中的nbyte個字符寫入文件號
為handle的文件中
intdup(inthandle)復(fù)制一個文件處理指針handle,返回這個指針
intdup2(inthandle,intnewhandle)復(fù)制一個文件處理指針handle到newhandle
inteof(int*handle)檢查文件是否結(jié)束,結(jié)束返回1,否則返回0
longfilelength(inthandle)返回文件長度,handle為文件號
intsetmode(inthandle,unsignedmode)本函數(shù)用來設(shè)定文件號為handle的文件的打
開方式
intgetftimefinthandle,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*/|
)
intsetftime(inthandle,structftime*ftime)重寫文件號為handle的文件時間,
新時間在結(jié)構(gòu)ftime中.成功返回0.結(jié)構(gòu)ftime如下:
structftime
(
unsignedft_tsec:5;/*秒*/|
unsignedft_min:6;/*分*/
unsignedft_hour:5;/*時*/
unsignedft_day:5;/*日*/
unsignedft_month:4;/*月*/
unsignedft_year:l;/*年?1980*/|
}
longlseek(inthandle,longoffset,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(inthandlejongoffsetjonglength)打開對文件共享的封鎖
intclose(inthandle)關(guān)閉handle所表示的文件處理,handle是從_creat、create
creatnew、creattemp>dup>dup2>_open^open中的一個處調(diào)用獲得的文件處理
成功返回0否則返回;,可用于UNIX系統(tǒng)
int_close(inthandle)關(guān)閉handle所表示的文件處理,handle是從_creat、creat>
creatnew>creattemp^dup>dup2>_open^open中的一個處調(diào)用獲得的文件處理
成功返回0否則返回只能用于MSDOS系統(tǒng)
FILE*fopen(char*filename,char*type)打開一個文件filename,打開方式為type,
并返回這個文件指針,type可為以下字符串加上后綴
11111
1type|讀寫性1文本〃進(jìn)制文件1建新/打開舊文件1
??111
i111
|r1讀1文本1打開舊的文件1
IW1寫1文本1建新文件
Ia1添加1文本1有就打開無則建新1
|r+1讀/寫1不限制1打開1
|w+1讀/寫1不限制1建新文件
Ia+|讀/添加|不限制|有就打開無則建新|
可加的后綴為、加表示文件以二進(jìn)制形式進(jìn)行操作,沒必要使用
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中讀一個字符,并返回這個字符
intputc(intch,FILE"stream)向流stream寫入一個字符ch
intgetw(FILE*stream)從流stream讀入一個整數(shù),錯誤返回EOF
intputw(intw,FILE*stream)向流stream寫入一個整數(shù)
intungetc(charc,FILE*stream)把字符c退回給流stream,下一次讀進(jìn)的字符將是c
intfgetc(FILE*stream)從流stream處讀一個字符,并返回這個字符
intfputc(intch,FILE*stream)將字符ch寫入流stream中
char*fgets(char*string,intn,FILE*stream)從流stream中讀n個字符存入string中
intfputs(char*string,FILE*stream)將字符串string寫入流stream中
從流中讀入
intfread(void*ptr;intsize,intnitemszFILE*stream)streamnitems
個長度為size的字符串存入ptr中
intfwrite(void*ptointsize,intnitems,FILE*stream)向流stream中寫入nitems
個長度為size的字符串,字符串在ptr中
intfscanf(FILE*stream,char*format[,argument,…])以格式化形式從流stream中
讀入一個字符串
intvfscanf(FILE*stream,char*format,\/alistparam)以格式化形式從流stream中
讀入一個字符串,參數(shù)從Valistparam中取得
intfprintf(FILE*stream,char*format[,argument,…])以格式化形式將一個字符
串寫給指定的流stream
intvfprintf(FILE*stream,char*format,Valistparam)以格式化形式將一個字符
串寫給指定的流stream,參數(shù)從Valistparam中取得
intfseek(FILE*stream,longoffsetjntfromwhere)函數(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上的文件處理,并返回文件處理
intferror(FILE*stream)檢測流stream上是否有讀寫錯誤,如有錯誤就返回1
voidclearerr(FILE*stream)清除流stream上的讀寫錯誤
voidsetbuf(FILE*stream,char*buf)給流stream指定一個緩沖區(qū)buf
voidsetvbuf(FILE*stream,char*buf,inttype,unsignedsize)
給流stream指定一個緩沖區(qū)buf,大小為size,類型為type,type的值見下表
type值I意義
IJOFBF|文件是完全緩沖區(qū),當(dāng)緩沖區(qū)是空時,下一個輸入操作將企圖填滿整個緩|
II沖區(qū).在輸出時,在把任何數(shù)據(jù)寫到文件之前,將完全填充緩沖區(qū).I
IJOLBF|文件是行緩沖區(qū).當(dāng)緩沖區(qū)為空時,下一個輸入操作將仍然企圖填整個緩|
II沖區(qū),然而在輸出時,每當(dāng)新行符寫到文件,緩沖區(qū)就被清洗掉.I
IJONBF|文件是無緩沖的.buf和size參數(shù)是被忽略的,每個輸入操作將直接從文|
II件讀,每個輸出操作將立即把數(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
intfflushall()關(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可以為以下值
SJWRITE允許寫SJREAD允許讀S」READ|S」WRITE允許讀、寫
int_chmod(char*filename,intfunc[,intattrib]);
本函數(shù)用于讀取或設(shè)定文件filename的屬性,
當(dāng)func=O時,函數(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(voidfar*farptr)本函數(shù)用來沒置遠(yuǎn)指針farptr的段值
voidfar*MK__FP(unsignedseg,unsignedoff)根據(jù)段seg和偏移量off構(gòu)造一個far指針
unsignedgetpsp()取程序段前綴的段地址,并返回這個地址
char*parsfnm(char*cmdline,structfcb*fcbptr,intoption)
函數(shù)分析一個字符串,通常,對一個文件名來說,是由cmdline所指的一個命令行.
文件名是放入一個FCB中作為一個驅(qū)動器,文件名和擴(kuò)展名.FCB是由fcbptr所指
定的.option參數(shù)是DOS分析系統(tǒng)調(diào)用時,AL文本的值.
intabsread(intdrivejntnsectsjntsectno,void"buffer)本函數(shù)功能為讀特定的
磁盤扇區(qū),drive為驅(qū)動器號(O=A,1=B等),nsects為要讀的扇區(qū)數(shù),sectno為開始的邏
輯扇區(qū)號,buffer為保存所讀數(shù)據(jù)的保存空間
intabswrite(intdrivejntnsects,intsectno,void"buffer)本函數(shù)功能為寫特定的
磁盤扇區(qū),drive為驅(qū)動器號(0=A,1=B等),nsects為要寫的扇區(qū)數(shù),sectn。為開始的邏
輯扇區(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)如下:
structdfreeI
(
unsigneddf_avail;/*有用簇個數(shù)*/I
unsigneddf_total;/*總共簇個數(shù)*/|
unsigneddf_bsec;/*每個扇區(qū)字節(jié)數(shù)*/|
unsigneddf_sclus;/*每個簇扇區(qū)數(shù)*/|
}
charfar*getdta()取磁盤轉(zhuǎn)換地址DTA
voidsetdta(charfar*dta)設(shè)置磁盤轉(zhuǎn)換地址DTA
voidgetfat(intdrive,fatinfo*fatblkp)
本函數(shù)返回指定驅(qū)動器drive(0=當(dāng)前」二A,2二B等)的文件分配表信息
并存入結(jié)構(gòu)fatblkp中,結(jié)構(gòu)如下:
structfatinfoI
(
charfi_sdus;/*每個簇扇區(qū)數(shù)*/|
charfi_fatid;/*文件分配表字節(jié)數(shù)*/|
intfi_nclus;/*簇的數(shù)目*/|
intfi_bysec;/*每個扇區(qū)字節(jié)數(shù)*/|
}
voidgetfatd(structfatinfo*fatblkp)本函數(shù)返回當(dāng)前驅(qū)動器的文件分配表信息,
并存入結(jié)構(gòu)fatblkp中,結(jié)構(gòu)如下:
structfatinfo
charfi_sclus;/*每個簇扇區(qū)數(shù)*/|
charfi_fatid;/*文件分配表字節(jié)數(shù)*/|
intfi_nclus;/*簇的數(shù)目*/|
intfi_bysec;/*每個扇區(qū)字節(jié)數(shù)*/|
intbdos(intdosfun,unsigneddosdx,unsigneddosal)本函數(shù)對MSDOS系統(tǒng)進(jìn)行調(diào)用,
dosdx為寄存器dx的值,dosal為寄存器al的值,dosfun為功能號
intbdosptr(intdosfun,void*argument,unsiigneddosal)本函數(shù)對MSDOS系統(tǒng)進(jìn)行調(diào)用,
argument為寄存器dx的值,dosal為寄存器al的值,dosfun為功能號
intint86(intintjnum,unionREGS*inregs,unionREGS*outregs)
執(zhí)行intr_num號中斷,用戶定義的寄存器值存于結(jié)構(gòu)inregs中,
執(zhí)行完后將返回的寄存器值存于結(jié)構(gòu)outregs中.
intint86x(intintr_num,unionREGS*inregs,unionREGS*outregs,
structSREGS*segregs)執(zhí)行intr_num號中斷,用戶定義的寄存器值存于
結(jié)構(gòu)inregs中和結(jié)構(gòu)segregs中,執(zhí)行完后將返回的寄存器值存于結(jié)構(gòu)outregs中.
intintdos(unionREGS*inregs,unionREGS*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(intintr__num,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(
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è)置中斷后的對中斷的處理程序.
voiddisable()禁止發(fā)生中斷
voidenable()允許發(fā)生中斷
voidgeninterrupt(intintr_num)執(zhí)行由intr__num所指定的軟件中斷
voidinterrupt(*getvect(intintr_num))()返回中斷號為intr_num的中斷處理程序,
例如:old_int_10h=getvect(
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版無學(xué)生單位信息化項(xiàng)目聯(lián)合研發(fā)合同3篇
- 二零二五年度個人融資擔(dān)保保險(xiǎn)合同范本2篇
- 黨建知識講解
- 維修維護(hù)委托合同三篇
- 醫(yī)療器械工程師研發(fā)醫(yī)療設(shè)備
- 二零二五年度戶外活動策劃個人勞務(wù)合同2篇
- 二零二五年度企業(yè)職工工傷保險(xiǎn)補(bǔ)貼專項(xiàng)資金使用協(xié)議3篇
- 二零二五年度個人出租公寓合同(含社區(qū)文化活動參與)3篇
- 二零二五年度水產(chǎn)養(yǎng)殖產(chǎn)品出口代理合同樣本
- 二零二五版商場物業(yè)管理合同范本(綠色能源利用規(guī)劃)3篇
- 時間的重要性英文版
- 2024老舊小區(qū)停車設(shè)施改造案例
- 合成生物學(xué)技術(shù)在生物制藥中的應(yīng)用
- 消化系統(tǒng)疾病的負(fù)性情緒與心理護(hù)理
- 高考語文文學(xué)類閱讀分類訓(xùn)練:戲劇類(含答案)
- 協(xié)會監(jiān)事會工作報(bào)告大全(12篇)
- 灰壩施工組織設(shè)計(jì)
- WS-T 813-2023 手術(shù)部位標(biāo)識標(biāo)準(zhǔn)
- 同意更改小孩名字協(xié)議書
- 隱患排查治理資金使用專項(xiàng)制度
- 家具定做加工合同
評論
0/150
提交評論