C-函數(shù)手冊(cè)大全_第1頁(yè)
C-函數(shù)手冊(cè)大全_第2頁(yè)
C-函數(shù)手冊(cè)大全_第3頁(yè)
C-函數(shù)手冊(cè)大全_第4頁(yè)
C-函數(shù)手冊(cè)大全_第5頁(yè)
已閱讀5頁(yè),還剩223頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論