C庫函數手冊資料_第1頁
C庫函數手冊資料_第2頁
C庫函數手冊資料_第3頁
C庫函數手冊資料_第4頁
C庫函數手冊資料_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

分類函數,所在函數庫為ctype.h

iniisalpha(intch)若ch是字母('A-Z,'a'")返回非0值,否則返回0

intisalnum(intch)若ch是字母(7\'」乙才-7)或數字('0'」9')

返回非。值,否則返回0

intisascii(intch)若ch是字符(ASCH碼中的0?127)返回非0值,否則返回0

intiscntrl(intch)若ch是作廢字符(0x7F)或普通控制字符(OxOO-OxlF)

返回非。值,否則返回0

intisdigit(intch)若ch是數字(?!?‘)返回非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是標點字符(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進制數('0'?9普?午'用-巧返回非0值,

否則返回0

inttolower(intch)若ch是大寫字母('A'-Z)返回相應的小寫字母(‘a'-z')

inttoupper(intch)若ch是小寫字母('a'-'z')返回相應的大寫字母(W-Z)

數學函數,所在函數庫為math.h>stdlib.h>string.h>float.h

intabs(inti)返回整型參數i的絕對值

doublecabs(structcomplexznum)返回復數znum的絕對值

doublefabs(doublex)返回雙精度參數x的絕對值

longlabs(longn)返回長整型參數n的絕對值

doubleexp(doublex)返回指數函數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)返網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的最小整數

doublefloor(doublex)返回不大于x的最大整數

voidsrand(unsignedseed)初始化隨機數發(fā)生器

intrand()產生一個隨機數并返回這個數

doublepoly(doublexzintredoublec口)從參數產生?個多項式

doublemodf(doublevalue,double*iptr)將雙精度數value分解成尾數和階

doublefmod(doublexzdoubley)返回x/y的余數

doublefrexp(doublevaluejnt*eptr)將雙精度數value分成尾數和階

doubleatof(char*nptr)將字符串nptr轉換成浮點數并返回這個浮點數

doubleatoi(char*nptr)將字符串nptr轉換成整數并返回這個整數

doubleatol(char*nptr)將字符串叩tr轉換成長整數并返回這個整數

char*ecvt(doublevaluejntndigitjnt*decptzint*sign)

將浮點數value轉換成字符串并返回該字符申

char*fcvt(doublevaluejntndigitjnt*decptjnt*sign)

將浮點數value轉換成字符串并返回該字符串

char*gcvt(doublevaluejntndigi^char*buf)

將數value轉換成字符串并存于buf中,并返回buf的指針

char*ultoa(unsignedlongvaluezchar"string,intradix)

將無符號整型數value轉換成字符串并返回該字符串,radix為轉換時所用基數

char*ltoa(longvalue,char*string,intradix)

將長整型數value轉換成字符串并返回該字符串jadix為轉換時所用基數

char*itoa(intvalue,char*string,intradix)

將整數value轉換成字符串存入string,radix為轉換時所用基數

doubleatof(char*nptr)將字符串叩tr轉換成雙精度數,并返回這個數,錯誤返回0

intatoi(char*nptr)將字符串nptr轉換成整型數,并返回這個數,錯誤返回0

longatol(char*nptr)將字符串nptr轉換成長整型數,并返回這個數,錯誤返回0

doublestrtod(char*str;char**endptr)將字符串str轉換成雙精度數,并返回這個數,

longstrtol(char*strzchar**endp:r;intbase)將字符串str轉換成長整型數,

并返回這個數,

intmatherr(structexception*e)

用戶修改數學錯誤返回信息函數(沒有必要使用)

double_matherr(_mexcepwhy,char*fun,double*arglp,

double*arg2p,doubleretval)

用戶修改數學錯誤返回信息函數(沒有必要使用)

unsignedint_clear87()清除浮點狀態(tài)字并返回原來的浮點狀態(tài)

void_fpreset()重新初使化浮點數學程序包

unsignedint_status87()返回浮點狀態(tài)字

目錄函數,所在函數庫為dir.h、dos.h

intchdir(char*path)使指定的目錄path(如>C:\\WPS”)變成當前的工作目錄,成

功返回0

inifindfirsl(char*pdlhriarne^lruclffblk*(Tblk,inlaUrib)查找指定的文件,成功

返回0

pathname為指定的目錄名和文件名,如"C:\\WPS\\TXT'

ffblk為指定的保存文件信息的一個結構,定義如下:

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卷標號|

|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)

此函數通過盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),

文件名name(TC,WPS等),擴展名ext(.EXE,.COM等)組成一個文件名

存與path中.

intfnsplit(char*pathzchar"drive,char*dir;char*namezchar*ext)

此函數將文件名path分解成盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),

文件名name(TC.WPS等),擴展名ext(.EXE..COM等),并分別存入相應的變量中.

intgetcurdir(intdrive,char*direc)此函數返回指定驅動器的當前工作目錄名稱

drive指定的驅動器(0=當前,1=A,2=B,3=C等)

direc保存指定驅動器當前工作路徑的變量成功返回0

char*getcwd(char*bufziintn)此函數取當前工作目錄并存入buf中,直到n個字

節(jié)長為為止.錯誤返回NULL

intgetdisk()取當前正在使用的驅動器,返回一個整數(0=A,l=B,2=C等)

intsetdisk(intdrive)設置要使用的驅動器drive(0=A,l=B,2=C等),

返回可使用驅動器總數

intmkdir(char*pathname)建立??個新的目錄pathname,成功返回0

intrmdir(char*pathname)刪除一個目錄pathname,成功返回0

char*mktemp(char"template)構造一個當前目錄上沒有的文件名并存于template中

char*searchpdlh(chcir*pdllindme)利用MSDOS找出文件filename所在路徑,

,此函數使用DOS的PATH變量,未找到文件返回NULL

進程函數,所在函數庫為stdlib.h^process.h

voidabort()此函數通過調用具有出口代碼3的_exit寫一個終止信息于stderr,

并異常終止程序。無返回值

intexec...裝入和運行其它程序

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函數族裝入并運行程序pathname,并將參數

arg0(argl,arg2,argv口,envp口)傳遞給子程序,出錯返回-1

在exec函數族中,后綴I、v、p、e添加到exec后,

所指定的函數將具有某種操作能力

有后綴p時,函數可以利用DOS的PATH變量查找子程序文件。

I時,函數中被傳遞的參數個數固定。

v時,函數中被傳遞的參數個數不固定。

e時,函數傳遞指定參數envp,允許改變子進程的環(huán)境,

無后綴e時,子進程使用當前程序的環(huán)境。

void_exit(intstatus)終止當前程序,但不清理現(xiàn)場

voidexit(intstatus)終止當前程序,關閉所有文件,寫緩沖區(qū)的輸出(等待輸出),

并調用任何寄存器的“出口函數”,無返回值

intspawn…運行子程序

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困數族在mode模式下運行子程序pdlhname,并將參數

arg0(argl,arg2,argv口,envp口)傳遞給子程序.出錯返回-1

mode為運行模式

mode為P_WAIT表示在子程序運行完后返回本程序

P_NOWAIT表示在子程序運行時同時運行本程序(不可用)

P_OVERLAY表示在本程序退出后運行子程序

在spawn函數族中,后綴I、v、p、e添加到spawn后,

所指定的函數將具有某種操作能力

有后綴p時,函數利用DOS的PATH查找子程序文件

I時,函數傳遞的參數個數固定.

▽時,,函數傳遞的參數個數不固定.

e時,指定參數envp可以傳遞給子程序,允許改變子程序運行環(huán)境.

當無后綴e時,子程序使用本程序的環(huán)境.

intsystem(char*command)將MSDOS命令command傳遞給DOS執(zhí)行

轉換子程序,函數庫為math.h>stdlib.h>ctype.h>float.h

char*ecvt(doublevaluejntndigitjnt*decptzint*sign)

將浮點數value轉換成字符串并返回該字符串

char*fcvt(doublevaluejntndigitjnt*decpt,int*sign)

將浮點數value轉換成字符串并返回該字符串

char*gcvt(doublevaluejntndigitzchar*buf)

將數value轉換成字符串并存于buf中,并返回buf的指針

char*ultoa(unsignedlongvaluezchar"string,intradix)

將無符號整型數value轉換成字符串并返回該字符串jadix為轉換時所用基數

char*ltoa(longvalue,char.string,intradix)

將長整型數value轉換成字符串并返回該字符串jadix為轉換時所用基數

char*itoa(intvalue,char*stringzintradix)

將整數value轉換成字符串存入string,radix為轉換時所用基數

doubleatof(char*nptr)將字符串nptr轉換成雙精度數,并返回這個數,錯誤返回0

intatoi(char*nptr)將字符串nptr轉換成整型數,并返回這個數,錯誤返回0

longatol(char*nptr)將字符串nptr轉換成長整型數,并返回這個數,錯誤返回0

doublestrtod(char*str;char**endptr)將字符串str轉換成雙精度數,并返回這個數,

longstrtol(char*strzchar**endp:r;intbase)將字符串str轉換成長整型數,

并返回這個數,

inttoascii(intc)返回c相應的ASCII

inttolower(intch)若ch是大寫字母('A'-Z)返回相應的小寫字母('a'-'z')

int_tolower(intch)返回ch相應的小寫字母('a'-'z')

inttoupper(intch)若ch是小寫字母('a'-'z')返回相應的大寫字母(7V-Z)

int_toupper(intch)返回ch相應的大寫字母('A'-'Z')

診斷函數,所在函數庫為assert.h>math.h

voidasserl(inltest)一個擴展成if?語句那樣的宏,如果lesl測試失敗,

就顯示一個信息并異常終止程序,無返回值

voidperror(char*string)本函數將顯示最近一次的錯誤信息,格式如下:

字符串string:錯誤信息

char*strerror(char*str)本函數返回最近一次的錯誤信息,格式如下:

字符串str:錯誤信息

intmatherr(structexception*e)

用戶修改數學錯誤返回信息函數(沒有必要使用)

double_matherr(_mexcepwhyzchar*funzdouble*arglp,

double*arg2p,doubleretval)

用戶修改數學錯誤返回信息函數(沒有必要使用)

輸入輸出子程序,函數庫為io?h、conio.h>stat.h>dos.h>

stdio.h>signal.h

intkbhit()本函數返回最近所敲的按鍵

intfgetchar()從控制臺(鍵盤)讀一個字符,顯示在屏幕上

intgetch()從控制臺(鍵盤)讀?個字符,不顯示在屏幕上

intputch()向控制臺(鍵盤)寫一個字符

intgetchar()從控制臺(鍵盤)讀一個字符,顯示在屏幕上

intputchar()向控制臺(鍵盤)寫一個字符

intgetche()從控制臺(鍵盤)讀一個字符,顯示在屏幕上

intungetch(intc)把字符c退回給控制臺(鍵盤)

char*cgets(char*string)從控制臺(鍵盤)讀入字符串存于string中

intscanf(char*format[,argument...])從控制臺讀入一個字符串,分別對各個參數進行

賦值,使用BIOS進行輸出

intvscanf(char*formatzValistparam)從控制臺讀入一個字符串,分別對各個參數進行

賦值,使用BIOS進行輸出,參數從Valistparam中取得

intcscanf(char*format[,argument...])從控制臺讀入一個字符串,分別對各個參數進行

賦值,直接對控制臺作操作,比如顯示器在顯示時字符時即為直接寫頻方式顯示

intsscanf(char"string,char*fornat:Largument,...])通過字符串string,分別對各個

參數進行賦值

intvsscanf(char*stringzchar*format/Vlistparam)通過字符串string,分別對各個

參數進行賦值,參數從Vlistparam中取得

intputs(char*string)發(fā)關一個字符串string給控制臺(顯示器),

使用BIOS進行輸出

voidcputs(char*string)發(fā)送一個字符串string給控制臺(顯示器),

直接對控制臺作操作,比如顯示器即為直接寫頻方式顯示

intprintf(char*format[/argument,...])發(fā)送格式化字符串輸出給控制臺(顯示器)

使用BIOS進行輸出

intvprintf(char*format,Valistparam)發(fā)送格式化字符串輸出給控制臺(顯示器)

使用BIOS進行輸出,參數從Valistparam中取得

intcprintf(char*format[,argumentz...])發(fā)送格式化字符串輸出給控制臺(顯示器),

直接對控制臺作操作,比如顯示器即為直接寫頻方式顯示

intvcprintf(char*formatzValistparam)發(fā)送格式化字符串輸出給控制臺(顯示器),

直接對控制臺作操作,比如顯示器即為直接寫頻方式顯示,

參數從Valistparam中取得

intsprintf(char*string,char*format[,argument/...])

將字符串string的內容重新寫為格式化后的字符串

intvsprintf(char.string,char.format,Valistparam)

將字符串string的內容重新寫為格式化后的字符串,參數從Valistparam中取得

intrename(char*oldnamezchar*newname)將文件oldname的名稱改為newname

intioctl(inthandle,intcmd[Jnt*argdxzintargcx])

本函數是用來控制輸入/輸出設備的,請見下表:

1I1

1cmd值|功能I

1----------1-----------------------------------------------------------------------------------1

10|取出設備信息1

111設置設備信息1

12|把argcx字節(jié)讀入由argdx所指的地址|

13|在argdx所指的地址寫argcx字節(jié)|

14|除把handle當作設備號(0=當前,1=A,等)之外,均和cmd=2時一樣|

15|除把handle當作設備號(0=當前,1=A,等)之外,均和cmd=3時一樣|

16|取輸入狀態(tài)I

17|取輸出狀態(tài)|

18|測試可換性;只對于DOS3.x|

1111置分享沖突的重算計數;只對DOS3,x1

111

int(*ssignal(intsig,int(*action)())()執(zhí)行軟件信號(沒必要使用)

intgsignal(intsig)執(zhí)行軟件信號(沒必要使用)

int_open(char*pathnamezintaccess)為讀或寫打開一個文件,

按后按access來確定是讀文件還是寫文件,access值見下表

i??

1access值|意義|

1-------------------1------------------------------------------------------------1

1O_RDONLY|讀文件|

IO_WRONLY|寫文件|

IO.RDWR|即讀也寫|

1O_NOINHERIT|若文件沒有傳遞給子程序,則被包含|

1O_DENYALL|只允許當前處理必須存取的文件|

1O.DENYWRITE|只允許從任何其它打開的文件讀|

1O_DENYREAD|只允許從任何其它打開的文件寫|

1O_DENYNONE|允許其它共享打開的文件|

intopen(char*pathname,intaccess[Jntpermiss])為讀或寫打開一個文件,

按后按access來確定是讀文件還是寫文件,access值見下表

access值|意義

O.RDONLY|讀文件|

O_WRONLY|寫文件|

O_RDWR|即讀也寫|

O.NDELAY|沒有使用;對UNIX系統(tǒng)兼容|

O.APPEND|即讀也寫,但每次寫總是在文件尾添加|

O_CREAT|若文件存在,此標志無用;若不存在,建新文件|

O_TRUNC|若文件存在,則長度被截為。,屬性不變I

O-EXCL|未用;對UNIX系統(tǒng)兼容|

O.BINARY|此標志可顯示地給出以二進制方式打開文件|

O_TEXT|此標志可用于顯示地給出以文本方式打開文件|

permiss為文件屬性,可為以下值:

S」WRITE允許寫S_IREAD允許讀S」READ|S」WRITE允許讀、寫

建立一個新文件并設定

intcreat(char*filenamezintpermiss)filename,

讀寫性。permiss為文件讀寫性,可以為以下值

S」WRITE允許寫S」READ允許讀S_IREAD|S」WRITE允許讀、寫

建立一個新文件并設定文件

int_creat(char*filenamezintattrib)filename,

屬性。attrib為文件屬性,可以為以下值

FA_RDONLY只讀FA_HIDDEN隱藏FA_SYSTEM系統(tǒng)

intcreatnew(char*filenamt,intattrib)建立一個新文件filename,并設定文件

屬性。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中,直接調用MSDOS進行操作.

intwrite(inthandle,void*buf,intnbyte)將buf中的nbyte個字符寫入文件號

為handle的文件中

將中的個字符寫入文件號

int_write(inthandle,void*bufzintnbyte)bufnbyte

為handle的文件中

intdup(inthandle)復制一個文件處理指針handle,返回這個指針

intdup2(inthandlejntnewhandle)復制一個文件處理指針handle至ijnewhandle

inteof(int/handle)檢查文件是否結束,結束返回1,否則返回0

longfilelength(inthandle)返回文件長度,handle為文件號

intsetmode(inthandle,unsignedmode)本函數用來設定文件號為handle的文件的打

開方式

intgetftime(inthandle,structftime*ftime)讀取文件號為handle的文件的時間,

并將文件時間存于ftime結構中,成功返回0,ftime結構如下:

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的文件時間,

新時間在結構ftime中.成功返回0.結構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)本函數將文件號為handle的文件

的指針移到fromwhere后的第offset個字節(jié)處.

SEEK_SET文件開關SEEK_CUR當前位置SEEK_END文件尾

longtell(inthandle)本函數返回文件號為handle的文件指針,以字節(jié)表示

intisatty(inthandle)本函數用來取設備handle的類型

intlock(inthandlejongoffset,longlength)對文件共享作封鎖

intunlock(inthandlejongoffset,longlength)打開對文件共享的封鎖

intclose(inthandle)關閉handle所表示的文件處理,handle是從_creai、create

creatnew、creattemp.dup、dup2、_open、open中的?個處調用獲得的文件處理

成功返回0否則返回T,可用于UNIX系統(tǒng)

int_close(inthandle)關閉handle所表示的文件處理,handle是從_creat、create

creatnew、creattemp^dup、dup2、_open,open中的一個處調用獲得的文件處理

成功返回0否則返回-1,只能用于MSDOS系統(tǒng)

FILE*fopen(char/filename,char*type)打開一個文件filename,打開方式為type,

并返回這個文件指針,type可為以下字符串加上后綴

Itype|讀寫性|文本/2進制文件|建新/打開舊文件|

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表示文件以二進制形式進行操作,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讀入一個整數,錯誤返回EOF

intputw(intwzFILE*stream)向流stream寫入一個整數

intungetc(charc,FILE*stream)把字符c退Pl給流stream,下一次讀進的字符將是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中

讀入一個字符串,參數從Valistparam中取得

intfprintf(FILE"stream,char*format[,argument,…])以格式化形式將一個字符

串寫給指定的流stream

intvfprintf(FILE*streamzchar*formatzValistparam)以格式化形式將一個字符

串寫給指定的流stream,參數從Valistparam中取得

intfseek(FILE*stream,longoffset,intfromwhere)函數把文件指針移到fromwhere

所指位置的向后offset個字節(jié)處,fromwhere可以為以下值:

SEEK_SET文件開關SEEK_CUR當前位置SEEK.END文件尾

longftell(FILE*stream)函數返回定位在stream中的當前文件指針位置,以字節(jié)表示

intrewind(FILE*stream)將當前文件指針stream移到文件開頭

intfeof(FILE*stream)檢測流stream上的文件指針是否在結束位置

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ū),當緩沖區(qū)是空時,下一個輸入操作將企圖填滿整個緩|

I沖區(qū).在輸出時,在把任何數據寫到文件之前,將完全填充緩沖區(qū),I

」OLBF|文件是行緩沖區(qū).當緩沖區(qū)為空時,下一個輸入操作將仍然企圖填整個緩|

I沖區(qū),然而在輸出時,每當新行符寫到文件,緩沖區(qū)就被清洗掉.I

」ONBF|文件是無緩沖的.buf和size參數是被忽略的.每個輸入操作將直接從文|

I件讀,每個輸出操作將立即把數據寫到文件中,I

intfclose(FILE"stream)關閉一個流,可以是文件或設備(例如LPT1)

intfcloseall()關閉所有除stdin或stdout外的流

intfflush(FILE*stream)關閉一個流,并對緩沖區(qū)作處理

處理即對讀的流,將流內內容讀入緩沖區(qū);

對寫的流,將緩沖區(qū)內內容寫入流。成功返回0

intfflushallO關閉所有流,并對流各自的緩沖區(qū)作處理

處理即對讀的流,將流內內容讀入緩沖區(qū):

對寫的流,將緩沖區(qū)內內容寫入流。成功返回0

intaccess(char"filename,intamode)本函數檢查文件filename并返回文件的屬性,

函數將屬性存于amode中,amode由以下位的組合構成

06可以讀、寫04可以讀02可以寫01執(zhí)行(忽略的)00文件存在

如果filename是一個目錄,函數將只確定目錄是否存在

函數執(zhí)行成功返回0,否則返回-1

intchmod(char"filename,intpermiss)本函數用于設定文件filename的屬性

permiss可以為以下值

S」WRITE允許寫S」READ允許讀SJREAD|SJWRITE允許讀、寫

int_chmod(char*filename,intfunc[,intattrib]);

本函數用于讀取或設定文件filename的屬性,

當func=0時,函數返回文件的屬性;當func=l時,函數設定文件的屬性

若為設定文件屬性,attrib可以為下列常數之一

FA_RDONLY只讀FA_HIDDEN隱藏FA_SYSTEM系統(tǒng)

接口子程序,所在函數庫為:dos?h、bios.h

unsignedsleep(unsignedseconds)暫停seconds微秒(百分之一秒)

intunlink(char"filename)刪除文件filename

unsignedFP_OFF(voidfar*farptr)本函數用來取遠指針farptr的偏移量

unsignedFP_SEG(void*方中1「)本函數用來沒置遠指針2中1「的段值

voidfar*MK_FP(unsignedsegzunsgnedoff)根據段seg和偏移量。仟構造一個far指針

unsignedgetpsp。取程序段前綴的段地址,并返回這個地址

char*parsfnm(char*cmdlinezstructfcb*fcbpti;intoption)

函數分析一個字符串,通常,對一個文件名來說,是由cmdline所指的一個命令行.

文件名是放入一個FCB中作為一個驅動器,文件名和擴展名.FCB是由fcbptr所指

定的.option參數是DOS分析系統(tǒng)調用時,AL文本的值.

intabsread(intdrivejntnsectsjntsectnozvoid"buffer)本函數功能為讀特定的

磁盤扇區(qū),drive為驅動器號(O=A,1=B等),nsects為要讀的扇區(qū)數,sectno為開始的邏

輯扇區(qū)號,buffer為保存所讀數據的保存空間

intabswrite(intdrivejntnsectsjntsectnozvoid*buffer)本函數功能為寫特定的

磁盤扇區(qū),drive為驅動器號(O=A,1=B等),nsects為要寫的扇區(qū)數,sectno為開始的邏

輯扇區(qū)號,buffer為保存所寫數據的所在空間

voidgetdfree(intdrive,structdfree*dfreep)本函數用來取磁盤的自由空間,

drive為磁盤號(0=當前,1=A等).函數將磁盤特性的由dfreep指向的dfree結構中.

dfree結構如下:

structdfree

{I

unsigneddf_avail;/*有用簇個數*/|

unsigneddf_total;/*總共簇個數*/|

unsigneddf_bsec;/*每個扇區(qū)字節(jié)數*/I

unsigneddf_sdus;/*每個簇娟區(qū)數*/|

}I

charfar*getdta()取磁盤轉換地址DTA

voidsetdta(charfar*dta)設置磁盤轉換地址DTA

voidgetfat(intdrive,fatinfo*fatblkp)

本函數返回指定驅動器d「ive(0=當前,1=A,2=B等)的文件分配表信息

并存入結構fatblkp中,結構如下:

structfatinfo

{I

charfLsclus;/*每個簇扇區(qū)數*/I

charfi_fatid;/*文件分配表字節(jié)數*/I

intfLndus;/*簇的數目*/I

intfLbysec;/*每個用區(qū)字節(jié)數*/I

}I

voidgetfatd(structfatinfo*fatblkp)本函數返回當前驅動器的文件分配表信息,

并存入結構fatblkp中,結構如下:

structfatinfo

(I

charfi_sclus;/*每個簇扇區(qū)數*/|

charfi_fatid;/*文件分配表字節(jié)數*/I

intfLnclus;/*簇的數目*/|

intfi_bysec;/*每個扇區(qū)字節(jié)數*/|

}I

intbdos(intdosfun,unsigneddosdx,unsigneddosal)木函數對MSDOS系統(tǒng)進行調用,

dosdx為寄存器dx的值,dosal為寄存器al的值,dosfun為功能號

intbdosptr(intdosfun,void"argument,unsigneddosal)木函數對MSDOS系統(tǒng)進行調用,

argument為寄存器dx的值,dosal為寄存器al的值,dosfun為功能號

intint86(intintr_numzunionREGS*inregs,unionREGS*outregs)

執(zhí)行intr_num號中斷,用戶定義的寄存器值存于結構inregs中,

執(zhí)行完后將返回的寄存器值存于結構outregs中.

intint86x(intintr_numzunionREGS*inregs,unionREGS*outregs,

structSREGS*segregs)執(zhí)行intjnum號中斷,用戶定義的寄存器值存于

結構inregs中和結構segregs中,執(zhí)行完后將返回的寄存器值存于結構outregs中.

intintdos(unionREGS*inregszunionREGS*outregs)

本函數執(zhí)行DOS中斷0x21來調用一個指定的DOS函數,用戶定義的寄存器值

存于結構inregs中,執(zhí)行完后函數將返回的寄存器值存于結構outregs中

intintdosx(unionREGS*inregs,unionREGS*outregs,structSREGS*segregs)

本函數執(zhí)行DOS中斷0x21來調用一個指定的DOS函數,用戶定義的寄存器值

存于結構inregs和segregs中,執(zhí)行完后函數將返回的寄存器值存于結構outregs中

voidintr(intintjnum,structREGPACK*preg)本函數中一個備用的8086軟件中斷接口

它能產生一個由參數intr_num指定的8086軟件中斷.函數在執(zhí)行軟件中斷前,

從結構preg復制用戶定義的各寄存器值到各個寄存器.軟件中斷完成后,

函數將當前各個寄存器的值復制到結構preg中.參數如下:

intr_num被執(zhí)行的中斷號

preg為保存用戶定義的寄存器值的結構,結構如下

structREGPACK|

{I

unsignedr_axzr_bx,r_cxzr_dx;|

unsignedr_bp,r_si,r_di,r_dsj_es,r_flags;|

)I

函數執(zhí)行完后,將新的寄存器值存于結構preg中

voidkeep(intstatusjntsize)以status狀態(tài)返FlMSDOS,但程序仍保留于內存中,所占

用空間由size決定.

voidctrlbrk(int(*fptr)())設置中斷后的對中斷的處理程序.

voiddisable()禁止發(fā)生中斷

voidenable()允許發(fā)生中斷

voidgeninterrupt(intintjnum)執(zhí)行由intr_num所指定的軟件中斷

voidinterrupt*getvecl(inlintr_num))()返回中斷號為inljnuin的中斷處理程序,

例如:old_int_10h=getvect(0xl0);

voidsetvect(intintr_numzvoidinterrupt(*isr)())設置中斷號為intr_num的中

斷處理程序為isr;例如:setvect(0xl0znewJnt_10h);

voidharderr(int(*fptr)())定義一個硬件錯誤處理程序,

每當出現(xiàn)錯誤時就調用fptr所指的程序

voidhardresume(intrescode)硬件錯誤處理函數

voidhardretn(interrcode)硬件錯誤處理函數

intinport(intprot)從指定的輸入端口讀入一個字,并返回這個字

intinportb(intport)從指定的輸入端口讀入一個字節(jié),并返回這個字節(jié)

voidoutport(intport,intword)將字word寫入指定的輸出端口port

voidoutportb(intport,charbyte)將字節(jié)byte寫入指定的輸出端口port

intpeek(intsegment,unsignedoffset)函數返回segment:offset處的一個字

charpeekb(intsegment,unsignedoffset)函數返回segment:offset處的?個字節(jié)

voidpoke(intsegmentjntoffset,charvalue),各字value寫至ijsegment:offset處

voidpokeb(intsegmentjntoffsetjntvalue)將字節(jié)value寫至Usegment:offset處

intrandbrd(structfcb*fcbptr;intrecent)

函數利用打開fcbptr所指的FCB讀recent個記錄.

intrandbwr(structfcb*fcbptr;intrecent)

函數將fcbptr所指的FCB中的recent個記錄寫到磁盤上

voidsegread(structSREGS*segtbl)函數把段寄存器的當前值放進結構segtbl中

intgetveri伙)取檢驗標志的當前狀態(tài)(0=檢驗關閉,1=檢驗打開)

voidsetverity(intvalue)設置當前檢驗狀態(tài),

value為0表示關閉檢驗,為1表示打開檢驗

intgetebrk。本函數返回控制中斷檢測的當前設置

intsetcbrk(intvalue)本函數用來設置控制中斷檢測為接通或斷開

當value=0時,為斷開檢測.當value=l時,為接開檢測

intdosexterr(structDOSERR*eblkp)取擴展錯誤.在DOS出現(xiàn)錯誤后,此函數將擴充的

錯誤信息填入eblkp所指的DOSERR結構中,該結構定義如下:

structDOSERR|

{I

intexterror;/*擴展錯誤*/|

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論