配色: 字号:
C语言标准库函数大全
2012-08-06 | 阅:  转:  |  分享 
  
Arther''sBlog

博客园社区首页新随笔联系管理订阅

随笔-208文章-0评论-

14

TurboC2.0函数中文说明大全



分类函数,所在函数库为ctype.h

intisalpha(intch)若ch是字母(''A''-''Z'',''a''-''z'')返回非0值,否则返回0

intisalnum(intch)若ch是字母(''A''-''Z'',''a''-''z'')或数字(''0''-''9''),返回非0值,

否则返回0

intisascii(intch)若ch是字符(ASCII码中的0-127)返回非0值,否则返回0

intiscntrl(intch)若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F),返

回非0值,否则返回0

intisdigit(intch)若ch是数字(''0''-''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是标点字符(0x00-0x1F)返回非0值,否则返回0

intisspace(intch)若ch是空格(''''),水平制表符(''\t''),回车符(''\r''),走纸换

行(''\f''),垂直制表符(''\v''),换行符(''\n''),返回非0值,否则返回0

intisupper(intch)若ch是大写字母(''A''-''Z'')返回非0值,否则返回0

intisxdigit(intch)若ch是16进制数(''0''-''9'',''A''-''F'',''a''-''f'')返回非0值,否则

返回0

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

inttoupper(intch)若ch是小写字母(''a''-''z'')返回相应的大写字母(''A''-''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,inteptr)返回value=x2n中x的值,n存贮

在eptr中

doubleldexp(doublevalue,intexp);返回value2exp的值

doublelog(doublex)返回logex的值

doublelog10(doublex)返回log10x的值

doublepow(doublex,doubley)返回xy的值

doublepow10(intp)返回10p的值

doublesqrt(doublex)返回x的开方

doubleacos(doublex)返回x的反余弦cos-1(x)值,x为弧度

c语言库函数大全--资料收集

准备是成功的首要前提

与我联系

发短消息

搜索



常用链接

我的随笔

我的空间

我的短信

我的评论

更多链接

留言簿

给我留言

查看留言

随笔分类(174)

.Net(rss)

Algorithm(15)(rss)

Basic(10)(rss)

C&C++(33)(rss)

DBase(2)(rss)

Essay(112)(rss)

Java(2)(rss)

随笔档案(208)

2007年8月(1)

2007年5月(5)

2007年4月(4)

2007年3月(1)

2007年1月(21)

2006年12月(48)

2006年11月(121)

2006年10月(7)

找找看

Page1of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

doubleasin(doublex)返回x的反正弦sin-1(x)值,x为弧度

doubleatan(doublex)返回x的反正切tan-1(x)值,x为弧度

doubleatan2(doubley,doublex)返回y/x的反正切tan-1(x)值,y的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)返回直角三角形斜边的长度(z),x和y为

直角边的长度,z2=x2+y2

doubleceil(doublex)返回不小于x的最小整数

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

voidsrand(unsignedseed)初始化随机数发生器

intrand()产生一个随机数并返回这个数

doublepoly(doublex,intn,doublec[])从参数产生一个多项式

doublemodf(doublevalue,doubleiptr)将双精度数value分解成尾数和



doublefmod(doublex,doubley)返回x/y的余数

doublefrexp(doublevalue,inteptr)将双精度数value分成尾数和阶

doubleatof(charnptr)将字符串nptr转换成浮点数并返回这个浮点数

doubleatoi(charnptr)将字符串nptr转换成整数并返回这个整数

doubleatol(charnptr)将字符串nptr转换成长整数并返回这个整数

charecvt(doublevalue,intndigit,intdecpt,intsign)

将浮点数value转换成字符串并返回该字符串

charfcvt(doublevalue,intndigit,intdecpt,intsign)

将浮点数value转换成字符串并返回该字符串

chargcvt(doublevalue,intndigit,charbuf)

将数value转换成字符串并存于buf中,并返回buf的指针

charultoa(unsignedlongvalue,charstring,intradix)

将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数

charltoa(longvalue,charstring,intradix)

将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数

charitoa(intvalue,charstring,intradix)

将整数value转换成字符串存入string,radix为转换时所用基数

doubleatof(charnptr)将字符串nptr转换成双精度数,并返回这个数,错误

返回0

intatoi(charnptr)将字符串nptr转换成整型数,并返回这个数,错误返回0



longatol(charnptr)将字符串nptr转换成长整型数,并返回这个数,错误返

回0

doublestrtod(charstr,charendptr)将字符串str转换成双精度数,并

返回这个数,

longstrtol(charstr,charendptr,intbase)将字符串str转换成长整型

数,并返回这个数,

intmatherr(structexceptione)用户修改数学错误返回信息函数(没有必

要使用)

double_matherr(_mexcepwhy,charfun,doublearg1p,double

arg2p,doubleretval)

用户修改数学错误返回信息函数(没有必要使用)

unsignedint_clear87()清除浮点状态字并返回原来的浮点状态

void_fpreset()重新初使化浮点数学程序包

unsignedint_status87()返回浮点状态字



相册

BOOK

photo

自己做的

Expert

anjou

jeffreyzhao

Ricktroy

shenfx

吕震宇

随心所欲

小寒

Friends

HackSite

Hackaday

HackAndSlash

HackCanada

Itdon''tmeanjackifitain''tgotthath

ack.

HackThissite

Hack-the-planet

MITIHTFPGallery

T-hack

WilhelmHackMuseum

Links

2600.com

80x86汇编小站

BlogJava

C++Builder研究

C++博客

CMS系统中文网站

C语言学习

Flier''sSky

HTML教程

IBM-java-中国

IT博客网

J道:Java和J2EE解决之道

linux宝库

Linux操作指南

linux技术中坚站

Linux网站大全

Linux伊甸园

PHP文章PHP教程基础

PHP中文站

Rootkit.com

SourceForge

VB-问专家

Page2of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

目录函数,所在函数库为dir.h、dos.h

intchdir(charpath)使指定的目录path(如:"C:\\WPS")变成当前的工

作目录,成功返回0

intfindfirst(charpathname,structffblkffblk,intattrib)

查找指定的文件,成功返回0

pathname为指定的目录名和文件名,如"C:\\WPS\\TXT"

ffblk为指定的保存文件信息的一个结构,定义如下:

┏━━━━━━━━━━━━━━━━━━┓

┃structffblk┃

┃{┃

┃charff_reserved[21];/DOS保留字/┃

┃charff_attrib;/文件属性/┃

┃intff_ftime;/文件时间/┃

┃intff_fdate;/文件日期/┃

┃longff_fsize;/文件长度/┃

┃charff_name[13];/文件名/┃

┃}┃

┗━━━━━━━━━━━━━━━━━━┛

attrib为文件属性,由以下字符代表

┏━━━━━━━━━┳━━━━━━━━┓

┃FA_RDONLY只读文件┃FA_LABEL卷标号┃

┃FA_HIDDEN隐藏文件┃FA_DIREC目录┃

┃FA_SYSTEM系统文件┃FA_ARCH档案┃

┗━━━━━━━━━┻━━━━━━━━┛

例:

structffblkff;

findfirst(".wps",&ff,FA_RDONLY);



intfindnext(structffblkffblk)取匹配finddirst的文件,成功返回0

voidfumerge(charpath,chardrive,chardir,charname,chare

xt)

此函数通过盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等),文件名name

(TC、WPS等),扩展名ext(.EXE、.COM等)组成一个文件名存与path中.

intfnsplit(charpath,chardrive,chardir,charname,charext)

此函数将文件名path分解成盘符drive(C:、A:等),路径dir(\TC、\BC\LIB

等),文件名name(TC、WPS等),扩展名ext(.EXE、.COM等),并分别存入相

应的变量中.

intgetcurdir(intdrive,chardirec)

此函数返回指定驱动器的当前工作目录名称。成功返回0

drive指定的驱动器(0=当前,1=A,2=B,3=C等)

direc保存指定驱动器当前工作路径的变量

chargetcwd(charbuf,iintn)此函数取当前工作目录并存入buf中,直到

n个字节长为为止.错误返回NULL

intgetdisk()取当前正在使用的驱动器,返回一个整数(0=A,1=B,2=C等)

intsetdisk(intdrive)设置要使用的驱动器drive(0=A,1=B,2=C等),返回

可使用驱动器总数

intmkdir(charpathname)建立一个新的目录pathname,成功返回0

intrmdir(charpathname)删除一个目录pathname,成功返回0

charmktemp(chartemplate)构造一个当前目录上没有的文件名并存

于template中

charsearchpath(charpathname)利用MSDOS找出文件filename所

在路径,此函数使用DOS的PATH变量,未找到文件返回NULL



进程函数,所在函数库为stdlib.h、process.h

voidabort()此函数通过调用具有出口代码3的_exit写一个终止信息于stder

VC知识库

VisualBasic菜鸟入门经典实例

visualc++/mfc开发指南

Xoops系统开发作者网站

博客园

程序员

开发者网络社区

看雪学院

算法与数据结构

兄弟工作组

中国C#技术站

中国DNN

中国Java开发网

中国UNIX技术论坛

中文java技术网

TechSite

baoz

阿卡主页

大成天下

分享内核之旅的乐趣

启明星辰

嵌入开发网

桌面应用与安全软件开发

最新随笔

1.搬家了...

2.用WindowsLiveWriter写的第一篇日

志...

3.手记--清除Rootkit病毒。。。

4.参加程序员考试?

5.是什么原因呢?

6.五一假期。。。过得怎么样。。。

7.要学习汇编语言了。。[不过,有点小问

题。]

8.世界读书日。。。

9.《深入理解计算机系统》

10.其实有的时候真应该想想自己....

11.为什么要给自己那么多烦恼呢?

12.Theexamisover....

13.Vocationiscoming....

14.[转]揭秘Google人才选拔机制大量数

据调查背后

15.[转]未曾使用网银存款不翼而飞网银

大盗困扰银行业

16.[转]著名软件公司Compuware3100

万美元收购Proxima

17.[转]朱骏:九城将推自主研发网游(图)

18.Toeveryvisitmyblog''speopel..

19.AboutMyStudy(Speciality)

20.[转]Vista消费版面市难微软仍未做好

准备

21.[转]《探索》杂志评出2006年七大技

术发现

22.[转]九成白领患年关综合症半数有意

跳槽

Page3of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

r,并异常终止程序。无返回值



intexec…装入和运行其它程序

intexecl(charpathname,chararg0,chararg1,…,charargn,NU

LL)

intexecle(charpathname,chararg0,chararg1,…,charargn,N

ULL,charenvp[])

intexeclp(charpathname,chararg0,chararg1,…,NULL)

intexeclpe(charpathname,chararg0,chararg1,…,NULL,char

envp[])

intexecv(charpathname,charargv[])

intexecve(charpathname,charargv[],charenvp[])

intexecvp(charpathname,charargv[])

intexecvpe(charpathname,charargv[],charenvp[])



exec函数族装入并运行程序pathname,并将参数arg0(arg1,arg2,argv[],

envp[])传递给子程序,出错返回-1。

在exec函数族中,后缀l、v、p、e添加到exec后,所指定的函数将具有某种操

作能力。

有后缀p时,函数可以利用DOS的PATH变量查找子程序文件。

l时,函数中被传递的参数个数固定。

v时,函数中被传递的参数个数不固定。

e时,函数传递指定参数envp,允许改变子进程的环境,

无后缀e时,子进程使用当前程序的环境。



void_exit(intstatus)终止当前程序,但不清理现场

voidexit(intstatus)终止当前程序,关闭所有文件,写缓冲区的输出(等待输

出),并调用任何寄存器的"出口函数",无返回值



intspawn…运行子程序

intspawnl(intmode,charpathname,chararg0,chararg1,…,cha

rargn,NULL)

intspawnle(intmode,charpathname,chararg0,chararg1,…,ch

arargn,NULL,charenvp[])

intspawnlp(intmode,charpathname,chararg0,chararg1,…,ch

arargn,NULL)

intspawnlpe(intmode,charpathname,chararg0,chararg1,…,c

harargn,NULL,charenvp[])

intspawnv(intmode,charpathname,charargv[])

intspawnve(intmode,charpathname,charargv[],charenvp[])

intspawnvp(intmode,charpathname,charargv[])

intspawnvpe(intmode,charpathname,charargv[],charenvp

[])



spawn函数族在mode模式下运行子程序pathname,并将参数arg0(arg1,ar

g2,argv[],envp[])传递给子程序.出错返回-1

mode为运行模式:

mode为P_WAIT表示在子程序运行完后返回本程序

P_NOWAIT表示在子程序运行时同时运行本程序(不可用)

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



在spawn函数族中,后缀l、v、p、e添加到spawn后,所指定的函数将具有某

种操作能力

有后缀p时,函数利用DOS的PATH查找子程序文件

l时,函数传递的参数个数固定.

23.[转]几乎知晓公司所有秘密网管成为

信息时代新贵

24.[转]专访美国黑客学院校长:学生来自

FBI及NASA

25.不知道这是什么考试。。。。

积分与排名

积分-16840

排名-2913

最新评论

阅读排行榜

1.c语言库函数大全--资料收集(2105)

2.[转]龙芯3号处理器将达64核部分兼容

x86(914)

3.[转]CLanguageKeywords(C语言关

键字)(792)

4.分治法DivideandConquer--个人资料

收集-[注:个人学习之用](599)

5.手记--清除Rootkit病毒。。。(572)

6.『VisualC++MFC简明教程』个人资

料收集-[注:个人学习之用](406)

7.[转]JBuilder2007打通任督二脉的崭新

Java开发工具(374)

8.个人资料收集-[注:个人学习之用]伪代

码的使用UsageofPseudocode(344)

9.『VisualC++MFC简明教程』--个人

资料收集-[注:个人学习之用](307)

10.[转]Borland推出应用程序功能测试工

具-SilkTest2006(299)

评论排行榜

1.我上的C语言第一节课!(3)

2.汇编,我到底用哪种工具!(2)

3.[转]CMPSC101&201CodingStan

dards(1)

4.是在学习还是?(1)

5.c语言库函数大全--资料收集(1)

6.[转]Ubuntu力劝开发者放弃OpenSuse

项目(1)

7.个人资料收集-[注:个人学习之用]算法

的复杂性-递归方程解的渐近阶的求法(1)

8.Theexamisover....(1)

9.[转]Java开发技术十年的回顾与展望(1)

10.[转]东尚科技闪电完成对超级解霸全资

收购(1)

hdmi转换器-CREATOR快



本公司为国内知名品牌,专

业生产HDMI、DVI、光纤

设备等。十年品牌值得信

赖!

Page4of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

v时,函数传递的参数个数不固定.

e时,指定参数envp可以传递给子程序,允许改变子程序运行环境.

无后缀e时,子程序使用本程序的环境.



intsystem(charcommand)

将MSDOS命令command传递给DOS执行转换子程序,函数库为math.h、st

dlib.h、ctype.h、float.h

charecvt(doublevalue,intndigit,intdecpt,intsign)

将浮点数value转换成字符串并返回该字符串

charfcvt(doublevalue,intndigit,intdecpt,intsign)

将浮点数value转换成字符串并返回该字符串

chargcvt(doublevalue,intndigit,charbuf)

将数value转换成字符串并存于buf中,并返回buf的指针

charultoa(unsignedlongvalue,charstring,intradix)

将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数

charltoa(longvalue,charstring,intradix)

将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数

charitoa(intvalue,charstring,intradix)

将整数value转换成字符串存入string,radix为转换时所用基数

doubleatof(charnptr)将字符串nptr转换成双精度数,并返回这个数,错误

返回0

intatoi(charnptr)将字符串nptr转换成整型数,并返回这个数,错误返回0



longatol(charnptr)将字符串nptr转换成长整型数,并返回这个数,错误返

回0

doublestrtod(charstr,charendptr)

将字符串str转换成双精度数,并返回这个数,

longstrtol(charstr,charendptr,intbase)

将字符串str转换成长整型数,并返回这个数,

inttoascii(intc)返回c相应的ASCII

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

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

inttoupper(intch)若ch是小写字母(''a''-''z'')返回相应的大写字母(''A''-''Z'')

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



诊断函数,所在函数库为assert.h、math.h

voidassert(inttest)一个扩展成if语句那样的宏,如果test测试失败,就显

示一个信息并异常终止程序,无返回值

voidperror(charstring)本函数将显示最近一次的错误信息,格式如:字

符串string:错误信息

charstrerror(charstr)本函数返回最近一次的错误信息,格式如:字符串

str:错误信息

intmatherr(structexceptione)

用户修改数学错误返回信息函数(没有必要使用)

double_matherr(_mexcepwhy,charfun,doublearg1p,double

arg2p,doubleretval)

用户修改数学错误返回信息函数(没有必要使用)



输入输出子程序,函数库为io.h、conio.h、stat.h、dos.h、stdio.h、signa

l.h



intkbhit()本函数返回最近所敲的按键

intfgetchar()从控制台(键盘)读一个字符,显示在屏幕上

intgetch()从控制台(键盘)读一个字符,不显示在屏幕上

intputch()向控制台(键盘)写一个字符

Page5of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

intgetchar()从控制台(键盘)读一个字符,显示在屏幕上

intputchar()向控制台(键盘)写一个字符

intgetche()从控制台(键盘)读一个字符,显示在屏幕上

intungetch(intc)把字符c退回给控制台(键盘)

charcgets(charstring)从控制台(键盘)读入字符串存于string中

intscanf(charformat[,argument…])

从控制台读入一个字符串,分别对各个参数进行赋值,使用BIOS进行输出

intvscanf(charformat,Valistparam)

从控制台读入一个字符串,分别对各个参数进行赋值,使用BIOS进行输出,参数

从Valistparam中取得

intcscanf(charformat[,argument…])

从控制台读入一个字符串,分别对各个参数进行赋值,直接对控制台作操作,比如

显示器在显示时字符时即为直接写频方式显示

intsscanf(charstring,charformat[,argument,…])

通过字符串string,分别对各个参数进行赋值

intvsscanf(charstring,charformat,Vlistparam)

通过字符串string,分别对各个参数进行赋值,参数从Vlistparam中取得

intputs(charstring)发关一个字符串string给控制台(显示器),使用BIO

S进行输出

voidcputs(charstring)发送一个字符串string给控制台(显示器),直接对

控制台作操作,比如显示器即为直接写频方式显示

intprintf(charformat[,argument,…])

发送格式化字符串输出给控制台(显示器),使用BIOS进行输出

intvprintf(charformat,Valistparam)

发送格式化字符串输出给控制台(显示器),使用BIOS进行输出,参数从Valist

param中取得

intcprintf(charformat[,argument,…])

发送格式化字符串输出给控制台(显示器),直接对控制台作操作,比如显示器即

为直接写频方式显示

intvcprintf(charformat,Valistparam)

发送格式化字符串输出给控制台(显示器),直接对控制台作操作,比如显示器即

为直接写频方式显示,参数从Valistparam中取得

intsprintf(charstring,charformat[,argument,…])

将字符串string的内容重新写为格式化后的字符串

intvsprintf(charstring,charformat,Valistparam)

将字符串string的内容重新写为格式化后的字符串,参数从Valistparam中取



intrename(charoldname,charnewname)将文件oldname的名称改

为newname

intioctl(inthandle,intcmd[,intargdx,intargcx])

本函数是用来控制输入/输出设备的,请见下表:

┌───┬────────────────────────────┐



│cmd值│功能│

├───┼────────────────────────────┤



│0│取出设备信息│

│1│设置设备信息│

│2│把argcx字节读入由argdx所指的地址│

│3│在argdx所指的地址写argcx字节│

│4│除把handle当作设备号(0=当前,1=A,等)之外,均和cmd=2时一样



│5│除把handle当作设备号(0=当前,1=A,等)之外,均和cmd=3时一样



│6│取输入状态│

Page6of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

│7│取输出状态│

│8│测试可换性;只对于DOS3.x│

│11│置分享冲突的重算计数;只对DOS3.x│

└───┴────────────────────────────┘



int(ssignal(intsig,int(action)())()执行软件信号(没必要使用)

intgsignal(intsig)执行软件信号(没必要使用)



int_open(charpathname,intaccess)为读或写打开一个文件,按后按ac

cess来确定是读文件还是写文件,access值见下表

┌──────┬────────────────────┐

│access值│意义│

├──────┼────────────────────┤

│O_RDONLY│读文件│

│O_WRONLY│写文件│

│O_RDWR│即读也写│

│O_NOINHERIT│若文件没有传递给子程序,则被包含│

│O_DENYALL│只允许当前处理必须存取的文件│

│O_DENYWRITE│只允许从任何其它打开的文件读│

│O_DENYREAD│只允许从任何其它打开的文件写│

│O_DENYNONE│允许其它共享打开的文件│

└──────┴────────────────────┘

intopen(charpathname,intaccess[,intpermiss])为读或写打开一个

文件,按后按access来确定是读文件还是写文件,access值见下表

┌────┬────────────────────┐

│access值│意义│

├────┼────────────────────┤

│O_RDONLY│读文件│

│O_WRONLY│写文件│

│O_RDWR│即读也写│

│O_NDELAY│没有使用;对UNIX系统兼容│

│O_APPEND│即读也写,但每次写总是在文件尾添加│

│O_CREAT│若文件存在,此标志无用;若不存在,建新文件│

│O_TRUNC│若文件存在,则长度被截为0,属性不变│

│O_EXCL│未用;对UNIX系统兼容│

│O_BINARY│此标志可显示地给出以二进制方式打开文件│

│O_TEXT│此标志可用于显示地给出以文本方式打开文件│

└────┴────────────────────┘

permiss为文件属性,可为以下值:

S_IWRITE允许写S_IREAD允许读S_IREAD|S_IWRITE允许读、写

intcreat(charfilename,intpermiss)建立一个新文件filename,并设

定读写性。

permiss为文件读写性,可以为以下值

S_IWRITE允许写S_IREAD允许读S_IREAD|S_IWRITE允许读、写

int_creat(charfilename,intattrib)建立一个新文件filename,并设定

文件属性。

attrib为文件属性,可以为以下值

FA_RDONLY只读FA_HIDDEN隐藏FA_SYSTEM系统

intcreatnew(charfilenamt,intattrib)建立一个新文件filename,并设

定文件属性。

attrib为文件属性,可以为以下值

FA_RDONLY只读FA_HIDDEN隐藏FA_SYSTEM系统

intcreattemp(charfilenamt,intattrib)建立一个新文件filename,并

设定文件属性。

attrib为文件属性,可以为以下值

Page7of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

FA_RDONLY只读FA_HIDDEN隐藏FA_SYSTEM系统

intread(inthandle,voidbuf,intnbyte)从文件号为handle的文件中读n

byte个字符存入buf中

int_read(inthandle,voidbuf,intnbyte)从文件号为handle的文件中读

nbyte个字符存入buf中,直接调用MSDOS进行操作.

intwrite(inthandle,voidbuf,intnbyte)将buf中的nbyte个字符写入文

件号为handle的文件中

int_write(inthandle,voidbuf,intnbyte)将buf中的nbyte个字符写入

文件号为handle的文件中

intdup(inthandle)复制一个文件处理指针handle,返回这个指针

intdup2(inthandle,intnewhandle)复制一个文件处理指针handle到ne

whandle

inteof(inthandle)检查文件是否结束,结束返回1,否则返回0

longfilelength(inthandle)返回文件长度,handle为文件号

intsetmode(inthandle,unsignedmode)本函数用来设定文件号为handl

e的文件的打开方式

intgetftime(inthandle,structftimeftime)

读取文件号为handle的文件的时间,并将文件时间存于ftime结构中,成功返

回0,ftime结构如下:

┌─────────────────┐

│structftime│

│{│

│unsignedft_tsec:5;/秒/│

│unsignedft_min:6;/分/│

│unsignedft_hour:5;/时/│

│unsignedft_day:5;/日/│

│unsignedft_month:4;/月/│

│unsignedft_year:1;/年-1980/│

│}│

└─────────────────┘

intsetftime(inthandle,structftimeftime)重写文件号为handle的文

件时间,

新时间在结构ftime中.成功返回0.结构ftime如下:

┌─────────────────┐

│structftime│

│{│

│unsignedft_tsec:5;/秒/│

│unsignedft_min:6;/分/│

│unsignedft_hour:5;/时/│

│unsignedft_day:5;/日/│

│unsignedft_month:4;/月/│

│unsignedft_year:1;/年-1980/│

│}│

└─────────────────┘

longlseek(inthandle,longoffset,intfromwhere)

本函数将文件号为handle的文件的指针移到fromwhere后的第offset个字节

处.

SEEK_SET文件开关SEEK_CUR当前位置SEEK_END文件尾

longtell(inthandle)本函数返回文件号为handle的文件指针,以字节表示

intisatty(inthandle)本函数用来取设备handle的类型

intlock(inthandle,longoffset,longlength)对文件共享作封锁

intunlock(inthandle,longoffset,longlength)打开对文件共享的封锁



intclose(inthandle)关闭handle所表示的文件处理,handle是从_creat、

creat、

Page8of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

creatnew、creattemp、dup、dup2、_open、open中的一个处调用获得

的文件处理

成功返回0否则返回-1,可用于UNIX系统

int_close(inthandle)关闭handle所表示的文件处理,handle是从_crea

t、creat、

creatnew、creattemp、dup、dup2、_open、open中的一个处调用获得

的文件处理

成功返回0否则返回-1,只能用于MSDOS系统



FILEfopen(charfilename,chartype)打开一个文件filename,打开方

式为type,

并返回这个文件指针,type可为以下字符串加上后缀

┌──┬────┬───────┬────────┐

│type│读写性│文本/2进制文件│建新/打开旧文件│

├──┼────┼───────┼────────┤

│r│读│文本│打开旧的文件│

│w│写│文本│建新文件│

│a│添加│文本│有就打开无则建新│

│r+│读/写│不限制│打开│

│w+│读/写│不限制│建新文件│

│a+│读/添加│不限制│有就打开无则建新│

└──┴────┴───────┴────────┘

可加的后缀为t、b。加b表示文件以二进制形式进行操作,t没必要使用

例:┌──────────────────┐

│#include

│main()│

│{│

│FILEfp;│

│fp=fopen("C:\\WPS\\WPS.EXE","r+b");│

└──────────────────┘

FILEfdopen(intahndle,chartype)

FILEfreopen(charfilename,chartype,FILEstream)

intgetc(FILEstream)从流stream中读一个字符,并返回这个字符

intputc(intch,FILEstream)向流stream写入一个字符ch

intgetw(FILEstream)从流stream读入一个整数,错误返回EOF

intputw(intw,FILEstream)向流stream写入一个整数

intungetc(charc,FILEstream)把字符c退回给流stream,下一次读进

的字符将是c

intfgetc(FILEstream)从流stream处读一个字符,并返回这个字符

intfputc(intch,FILEstream)将字符ch写入流stream中

charfgets(charstring,intn,FILEstream)

从流stream中读n个字符存入string中

intfputs(charstring,FILEstream)将字符串string写入流stream中

intfread(voidptr,intsize,intnitems,FILEstream)

从流stream中读入nitems个长度为size的字符串存入ptr中

intfwrite(voidptr,intsize,intnitems,FILEstream)

向流stream中写入nitems个长度为size的字符串,字符串在ptr中

intfscanf(FILEstream,charformat[,argument,…])

以格式化形式从流stream中读入一个字符串

intvfscanf(FILEstream,charformat,Valistparam)

以格式化形式从流stream中读入一个字符串,参数从Valistparam中取得

intfprintf(FILEstream,charformat[,argument,…])

以格式化形式将一个字符串写给指定的流stream

intvfprintf(FILEstream,charformat,Valistparam)

以格式化形式将一个字符串写给指定的流stream,参数从Valistparam中取

Page9of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm



intfseek(FILEstream,longoffset,intfromwhere)

函数把文件指针移到fromwhere所指位置的向后offset个字节处,fromwhere

可以为以下值:

SEEK_SET文件开关SEEK_CUR当前位置SEEK_END文件尾

longftell(FILEstream)函数返回定位在stream中的当前文件指针位置,

以字节表示

intrewind(FILEstream)将当前文件指针stream移到文件开头

intfeof(FILEstream)检测流stream上的文件指针是否在结束位置

intfileno(FILEstream)取流stream上的文件处理,并返回文件处理

intferror(FILEstream)检测流stream上是否有读写错误,如有错误就返

回1

voidclearerr(FILEstream)清除流stream上的读写错误

voidsetbuf(FILEstream,charbuf)给流stream指定一个缓冲区buf

voidsetvbuf(FILEstream,charbuf,inttype,unsignedsize)

给流stream指定一个缓冲区buf,大小为size,类型为type,type的值见下表



┌───┬─────────────────────────────

──┐

│type值│意义│

├───┼─────────────────────────────

──┤

│_IOFBF│文件是完全缓冲区,当缓冲区是空时,下一个输入操作将企图填满

整个缓│

││冲区.在输出时,在把任何数据写到文件之前,将完全填充缓冲区.│

│_IOLBF│文件是行缓冲区.当缓冲区为空时,下一个输入操作将仍然企图填

整个缓│

││冲区.然而在输出时,每当新行符写到文件,缓冲区就被清洗掉.│

│_IONBF│文件是无缓冲的.buf和size参数是被忽略的.每个输入操作将直接

从文│

││件读,每个输出操作将立即把数据写到文件中.│

└───┴─────────────────────────────

──┘

intfclose(FILEstream)关闭一个流,可以是文件或设备(例如LPT1)

intfcloseall()关闭所有除stdin或stdout外的流

intfflush(FILEstream)

关闭一个流,并对缓冲区作处理处理即对读的流,将流内容读入缓冲区;对

写的流,将缓冲区内内容写入流。成功返回0

intfflushall()

关闭所有流,并对流各自的缓冲区作处理处理即对读的流,将流内容读入缓

冲区;对写的流,将缓冲区内内容写入流。成功返回0

intaccess(charfilename,intamode)

本函数检查文件filename并返回文件的属性,函数将属性存于amode中,am

ode由以下位的组合构成

06可以读、写04可以读02可以写01执行(忽略的)00文件存在

如果filename是一个目录,函数将只确定目录是否存在函数执行成功返回0,否

则返回-1

intchmod(charfilename,intpermiss)本函数用于设定文件filename的

属性

permiss可以为以下值

S_IWRITE允许写S_IREAD允许读S_IREAD|S_IWRITE允许读、写

int_chmod(charfilename,intfunc[,intattrib]);

本函数用于读取或设定文件filename的属性,

当func=0时,函数返回文件的属性;当func=1时,函数设定文件的属性

若为设定文件属性,attrib可以为下列常数之一

Page10of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

FA_RDONLY只读FA_HIDDEN隐藏FA_SYSTEM系统



接口子程序,所在函数库为:dos.h、bios.h

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

intunlink(charfilename)删除文件filename

unsignedFP_OFF(voidfarfarptr)本函数用来取远指针farptr的偏移量

unsignedFP_SEG(voidfarfarptr)本函数用来没置远指针farptr的段值

voidfarMK_FP(unsignedseg,unsignedoff)根据段seg和偏移量off构

造一个far指针

unsignedgetpsp()取程序段前缀的段地址,并返回这个地址

charparsfnm(charcmdline,structfcbfcbptr,intoption)

函数分析一个字符串,通常,对一个文件名来说,是由cmdline所指的一个命令

行.

文件名是放入一个FCB中作为一个驱动器,文件名和扩展名.FCB是由fcbptr所

指定的.

option参数是DOS分析系统调用时,AL文本的值.

intabsread(intdrive,intnsects,intsectno,voidbuffer)

本函数功能为读特定的磁盘扇区,

drive为驱动器号(0=A,1=B等),nsects为要读的扇区数,sectno为开始的逻

辑扇区号,buffer为保存所读数据的保存空间

intabswrite(intdrive,intnsects,intsectno,voidbuffer)

本函数功能为写特定的磁盘扇区,

drive为驱动器号(0=A,1=B等),nsects为要写的扇区数,sectno为开始的逻

辑扇区号,buffer为保存所写数据的所在空间

voidgetdfree(intdrive,structdfreedfreep)

本函数用来取磁盘的自由空间,

drive为磁盘号(0=当前,1=A等).函数将磁盘特性的由dfreep指向的dfree结

构中.dfree结构如下:

┌───────────────────┐

│structdfree│

│{│

│unsigneddf_avail;/有用簇个数/│

│unsigneddf_total;/总共簇个数/│

│unsigneddf_bsec;/每个扇区字节数/│

│unsigneddf_sclus;/每个簇扇区数/│

│}│

└───────────────────┘

charfargetdta()取磁盘转换地址DTA

voidsetdta(charfardta)设置磁盘转换地址DTA

voidgetfat(intdrive,fatinfofatblkp)

本函数返回指定驱动器drive(0=当前,1=A,2=B等)的文件分配表信息并存入

结构fatblkp中,结构如下:

┌──────────────────┐

│structfatinfo│

│{│

│charfi_sclus;/每个簇扇区数/│

│charfi_fatid;/文件分配表字节数/│

│intfi_nclus;/簇的数目/│

│intfi_bysec;/每个扇区字节数/│

│}│

└──────────────────┘

voidgetfatd(structfatinfofatblkp)本函数返回当前驱动器的文件分配

表信息,并存入结构fatblkp中,结构如下:

┌──────────────────┐

│structfatinfo│

Page11of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

│{│

│charfi_sclus;/每个簇扇区数/│

│charfi_fatid;/文件分配表字节数/│

│intfi_nclus;/簇的数目/│

│intfi_bysec;/每个扇区字节数/│

│}│

└──────────────────┘

intbdos(intdosfun,unsigneddosdx,unsigneddosal)

本函数对MSDOS系统进行调用,dosdx为寄存器dx的值,dosal为寄存器al的

值,dosfun为功能号

intbdosptr(intdosfun,voidargument,unsiigneddosal)

本函数对MSDOS系统进行调用,

argument为寄存器dx的值,dosal为寄存器al的值,dosfun为功能号

intint86(intintr_num,unionREGSinregs,unionREGSoutregs)

执行intr_num号中断,用户定义的寄存器值存于结构inregs中,执行完后将返

回的寄存器值存于结构outregs中.

intint86x(intintr_num,unionREGSinregs,unionREGSoutregs,

structSREGSsegregs)

执行intr_num号中断,用户定义的寄存器值存于结构inregs中和结构segregs

中,执行完后将返回的寄存器值存于结构outregs中.

intintdos(unionREGSinregs,unionREGSoutregs)

本函数执行DOS中断0x21来调用一个指定的DOS函数,用户定义的寄存器值

存于结构inregs中,执行完后函数将返回的寄存器值存于结构outregs中

intintdosx(unionREGSinregs,unionREGSoutregs,structSREGS

segregs)

本函数执行DOS中断0x21来调用一个指定的DOS函数,用户定义的寄存器值

存于结构inregs和segregs中,执行完后函数将返回的寄存器值存于结构outre

gs中

voidintr(intintr_num,structREGPACKpreg)

本函数中一个备用的8086软件中断接口它能产生一个由参数intr_num指定

的8086软件中断.

函数在执行软件中断前,从结构preg复制用户定义的各寄存器值到各个寄存

器.软件中断完成后,

函数将当前各个寄存器的值复制到结构preg中.参数如下:

intr_num被执行的中断号,preg为保存用户定义的寄存器值的结构,结构如



┌──────────────────────┐

│structREGPACK│

│{│

│unsignedr_ax,r_bx,r_cx,r_dx;│

│unsignedr_bp,r_si,r_di,r_ds,r_es,r_flags;│

│}│

└──────────────────────┘

函数执行完后,将新的寄存器值存于结构preg中

voidkeep(intstatus,intsize)

以status状态返回MSDOS,但程序仍保留于内存中,所占用空间由size决定.

voidctrlbrk(int(fptr)())设置中断后的对中断的处理程序.

voiddisable()禁止发生中断

voidenable()允许发生中断

voidgeninterrupt(intintr_num)执行由intr_num所指定的软件中断

voidinterrupt(getvect(intintr_num))()

返回中断号为intr_num的中断处理程序,例如:old_int_10h=getvect(0x1

0);

voidsetvect(intintr_num,voidinterrupt(isr)())

设置中断号为intr_num的中断处理程序为isr,例如:setvect(0x10,new_int

Page12of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

_10h);

voidharderr(int(fptr)())

定义一个硬件错误处理程序,每当出现错误时就调用fptr所指的程序

voidhardresume(intrescode)硬件错误处理函数

voidhardretn(interrcode)硬件错误处理函数

intinport(intprot)从指定的输入端口读入一个字,并返回这个字

intinportb(intport)从指定的输入端口读入一个字节,并返回这个字节

voidoutport(intport,intword)将字word写入指定的输出端口port

voidoutportb(intport,charbyte)将字节byte写入指定的输出端口port

intpeek(intsegment,unsignedoffset)

函数返回segment:offset处的一个字

charpeekb(intsegment,unsignedoffset)

函数返回segment:offset处的一个字节

voidpoke(intsegment,intoffset,charvalue)

将字value写到segment:offset处

voidpokeb(intsegment,intoffset,intvalue)

将字节value写到segment:offset处

intrandbrd(structfcbfcbptr,intreccnt)

函数利用打开fcbptr所指的FCB读reccnt个记录.

intrandbwr(structfcbfcbptr,intreccnt)

函数将fcbptr所指的FCB中的reccnt个记录写到磁盘上

voidsegread(structSREGSsegtbl)函数把段寄存器的当前值放进结构s

egtbl中

intgetverify()取检验标志的当前状态(0=检验关闭,1=检验打开)

voidsetverify(intvalue)

设置当前检验状态,value为0表示关闭检验,为1表示打开检验

intgetcbrk()本函数返回控制中断检测的当前设置

intsetcbrk(intvalue)本函数用来设置控制中断检测为接通或断开当value=

0时,为断开检测.当value=1时,为接开检测

intdosexterr(structDOSERReblkp)

取扩展错误.在DOS出现错误后,此函数将扩充的错误信息填入eblkp所指的D

OSERR结构中.该结构定义如下:

┌──────────────┐

│structDOSERR│

│{│

│intexterror;/扩展错误/│

│charclass;/错误类型/│

│charaction;/方式/│

│charlocus;/错误场所/│

│}│

└──────────────┘

intbioscom(intcmd,chartype,intport)本函数负责对数据的通讯工作,

cmd可以为以下值:

0置通讯参数为字节byte值1发送字符通过通讯线输出

2从通讯线接受字符3返回通讯的当前状态

port为通讯端口,port=0时通讯端口为COM1,port=1时通讯端口为COM2,以

此类推

byte为传送或接收数据时的参数,为以下位的组合:

┌───┬─────┬───┬─────┬───┬─────┐

│byte值│意义│byte值│意义│byte值│意义│

├───┼─────┼───┼─────┼───┼─────┤

│0x02│7数据位│0x03│8数据位│0x00│1停止位│

│0x04│2停止位│0x00│无奇偶性│0x08│奇数奇偶性│

│0x18│偶数奇偶性│0x00│110波特│0x20│150波特│

│0x40│300波特│0x60│600波特│0x80│1200波特│

Page13of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

│0xA0│2400波特│0xC0│4800波特│0xE0│9600波特│

└───┴─────┴───┴─────┴───┴─────┘



例如:0xE0|0x08|0x00|0x03即表示置通讯口为9600波特,奇数奇偶性,1停

止位,

8数据位.函数返回值为一个16位整数,定义如下:

第15位超时

第14位传送移位寄存器空

第13位传送固定寄存器空

第12位中断检测

第11位帧错误

第10位奇偶错误

第9位过载运行错误

第8位数据就绪

第7位接收线信号检测

第6位环形指示器

第5位数据设置就绪

第4位清除发送

第3位δ接收线信号检测器

第2位下降边环形检测器

第1位δ数据设置就绪

第0位δ清除发送



intbiosdisk(intcmd,intdrive,inthead,inttrack,intsector,intnsect

s,voidbuffer)

本函数用来对驱动器作一定的操作,cmd为功能号,drive为驱动器号(0=A,1

=B,0x80=C,0x81=D,0x82=E等).cmd可为以下值:



0重置软磁盘系统.这强迫驱动器控制器来执行硬复位.忽略所有其它参数.

1返回最后的硬盘操作状态.忽略所有其它参数

2读一个或多个磁盘扇区到内存.读开始的扇区由head、track、sector给

出。扇区号由nsects给出。把每个扇区512个字节的数据读入buffer

3从内存读数据写到一个或多个扇区。写开始的扇区由head、track、sector

给出。扇区号由nsects给出。所写数据在buffer中,每扇区512个字节。

4检验一个或多个扇区。开始扇区由head、track、sector给出。扇区号由n

sects给出。

5格式化一个磁道,该磁道由head和track给出。buffer指向写在指定track

上的扇区磁头器的一个表。以下cmd值只允许用于XT或AT微机:

6格式化一个磁道,并置坏扇区标志。

7格式化指定磁道上的驱动器开头。

8返回当前驱动器参数,驱动器信息返回写在buffer中(以四个字节表示)。

9初始化一对驱动器特性。

10执行一个长的读,每个扇区读512加4个额外字节

11执行一个长的写,每个扇区写512加4个额外字节

12执行一个磁盘查找

13交替磁盘复位

14读扇区缓冲区

15写扇区缓冲区

16检查指定的驱动器是否就绪

17复核驱动器

18控制器RAM诊断

19驱动器诊断

20控制器内部诊



函数返回由下列位组合成的状态字节:

Page14of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

0x00操作成功

0x01坏的命令

0x02地址标记找不到

0x04记录找不到

0x05重置失败

0x07驱动参数活动失败

0x09企图DMA经过64K界限

0x0B检查坏的磁盘标记

0x10坏的ECC在磁盘上读

0x11ECC校正的数据错误(注意它不是错误)

0x20控制器失效

0x40查找失败

0x80响应的连接失败

0xBB出现无定义错误

0xFF读出操作失败



intbiodquip()

检查设备,函数返回一字节,该字节每一位表示一个信息,如下:

第15位打印机号

第14位打印机号

第13位未使用

第12位连接游戏I/O

第11位RS232端口号

第8位未使用

第7位软磁盘号

第6位软磁盘号,

00为1号驱动器,01为2号驱动器,10为3号驱动器,11为4号驱动器



第5位初始化

第4位显示器模式

00为未使用,01为40x25BW彩色显示卡

10为80x25BW彩色显示卡,11为80x25BW单色显示卡

第3位母扦件

第2位随机存贮器容量,00为16K,01为32K,10为48K,11为64K

第1位浮点共用处理器

第0位从软磁盘引导



intbioskey(intcmd)本函数用来执行各种键盘操作,由cmd确定操作。

cmd可为以下值:

0返回敲键盘上的下一个键。若低8位为非0,即为ASCII字符;若低8位为0,

则返回扩充了的键盘代码。

1测试键盘是否可用于读。返回0表示没有键可用;否则返回下一次敲键之

值。

敲键本身一直保持由下次调用具的cmd值为0的bioskey所返回的值。

2返回当前的键盘状态,由返回整数的每一个位表示,见下表:

┌──┬───────────┬───────────┐

│位│为0时意义│为1时意义│

├──┼───────────┼───────────┤

│7│插入状态│改写状态│

│6│大写状态│小写状态│

│5│数字状态,NumLock灯亮│光标状态,NumLock灯熄│

│4│ScrollLock灯亮│ScrollLock灯熄│

│3│Alt按下│Alt未按下│

│2│Ctrl按下│Ctrl未按下│

│1│左Shift按下│左Shift未按下│

Page15of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

│0│右Shift按下│右Shift未按下│

└──┴───────────┴───────────┘

intbiosmemory()返回内存大小,以K为单位.

intbiosprint(intcmd,intbyte,intport)控制打印机的输入/输出.

port为打印机号,0为LPT1,1为LPT2,2为LPT3等

cmd可以为以下值:

0打印字符,将字符byte送到打印机

1打印机端口初始化

2读打印机状态

函数返回值由以下位值组成表示当前打印机状态

0x01设备时间超时

0x08输入/输出错误

0x10选择的

0x20走纸

0x40认可

0x80不忙碌



intbiostime(intcmd,longnewtime)计时器控制,cmd为功能号,可为以下





0函数返回计时器的当前值

1将计时器设为新值newtime



structcountrycountry(intcountrycmode,structcountrycountry

p)

本函数用来控制某一国家的相关信息,如日期,时间,货币等.

若countryp=-1时,当前的国家置为countrycode值(必须为非0).否则,由cou

ntryp所指向的country结构用下列的国家相关信息填充:

(1)当前的国家(若countrycode为0或2)由countrycode所给定的国家.

结构country定义如下:

┌────────────────────┐

│structcountry│

│{│

│intco_date;/日期格式/│

│charco_curr[5];/货币符号/│

│charco_thsep[2];/数字分隔符/│

│charco_desep[2];/小数点/│

│charco_dtsep[2];/日期分隔符/│

│charco_tmsep[2];/时间分隔符/│

│charco_currstyle;/货币形式/│

│charco_digits;/有效数字/│

│int(farco_case)();/事件处理函数/│

│charco_dasep;/数据分隔符/│

│charco_fill[10];/补充字符/│

│}│

└────────────────────┘

co_date的值所代表的日期格式是:

0月日年1日月年2年月日

co_currstrle的值所代表的货币显示方式是

0货币符号在数值前,中间无空格

1货币符号在数值后,中间无空格

2货币符号在数值前,中间有空格

3货币符号在数值后,中间有空格



操作函数,所在函数库为string.h、mem.h

Page16of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

mem…操作存贮数组

voidmemccpy(voiddestin,voidsource,unsignedcharch,unsign

edn)

voidmemchr(voids,charch,unsignedn)

voidmemcmp(voids1,voids2,unsignedn)

intmemicmp(voids1,voids2,unsignedn)

voidmemmove(voiddestin,voidsource,unsignedn)

voidmemcpy(voiddestin,voidsource,unsignedn)

voidmemset(voids,charch,unsignedn)



这些函数,mem…系列的所有成员均操作存贮数组.在所有这些函数中,数组是

n字节长.

memcpy从source复制一个n字节的块到destin.如果源块和目标块重迭,则选

择复制方向,以例正确地复制覆盖的字节.

memmove与memcpy相同.memset将s的所有字节置于字节ch中.s数组的

长度由n给出.

memcmp比较正好是n字节长的两个字符串s1和s2.些函数按无符号字符比较

字节,因此,

memcmp("0xFF","\x7F",1)返回值大于0.memicmp比较s1和s2的前n个

字节,不管字符大写或小写.

memccpy从source复制字节到destin.复制一结束就发生下列任一情况:

(1)字符ch首选复制到destin.

(2)n个字节已复制到destin.

memchr对字符ch检索s数组的前n个字节.

返回值:memmove和memcpy返回destin

memset返回s的值

memcmp和memicmp─┬─若s1
├─若s1=s2返回值等于0

└─若s1>s2返回值大于0

memccpy若复制了ch,则返回直接跟随ch的在destin中的字节的一个指针;



否则返回NULL

memchr返回在s中首先出现ch的一个指针;如果在s数组中不出现ch,就返回N

ULL.



voidmovedata(intsegsrc,intoffsrc,intsegdest,intoffdest,unsigne

dnumbytes)

本函数将源地址(segsrc:offsrc)处的numbytes个字节复制到目标地址(seg

dest:offdest)

voidmovemem(voidsource,voiddestin,unsignedlen)

本函数从source处复制一块长len字节的数据到destin.若源地址和目标地址

字符串重迭,则选择复制方向,以便正确的复制数据.

voidsetmem(voidaddr,intlen,charvalue)

本函数把addr所指的块的第一个字节置于字节value中.



str…字符串操作函数

charstpcpy(chardest,constcharsrc)将字符串src复制到dest

charstrcat(chardest,constcharsrc)将字符串src添加到dest末尾

charstrchr(constchars,intc)检索并返回字符c在字符串s中第一次出现

的位置

intstrcmp(constchars1,constchars2)比较字符串s1与s2的大小,

并返回s1-s2

charstrcpy(chardest,constcharsrc)将字符串src复制到dest

size_tstrcspn(constchars1,constchars2)扫描s1,返回在s1中有,

在s2中也有的字符个数

Page17of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

charstrdup(constchars)将字符串s复制到最近建立的单元

intstricmp(constchars1,constchars2)比较字符串s1和s2,并返回s

1-s2

size_tstrlen(constchars)返回字符串s的长度

charstrlwr(chars)

将字符串s中的大写字母全部转换成小写字母,并返回转换后的字符串

charstrncat(chardest,constcharsrc,size_tmaxlen)

将字符串src中最多maxlen个字符复制到字符串dest中

intstrncmp(constchars1,constchars2,size_tmaxlen)

比较字符串s1与s2中的前maxlen个字符

charstrncpy(chardest,constcharsrc,size_tmaxlen)

复制src中的前maxlen个字符到dest中

intstrnicmp(constchars1,constchars2,size_tmaxlen)

比较字符串s1与s2中的前maxlen个字符

charstrnset(chars,intch,size_tn)

将字符串s的前n个字符置于ch中

charstrpbrk(constchars1,constchars2)

扫描字符串s1,并返回在s1和s2中均有的字符个数

charstrrchr(constchars,intc)

扫描最后出现一个给定字符c的一个字符串s

charstrrev(chars)

将字符串s中的字符全部颠倒顺序重新排列,并返回排列后的字符串

charstrset(chars,intch)

将一个字符串s中的所有字符置于一个给定的字符ch

size_tstrspn(constchars1,constchars2)

扫描字符串s1,并返回在s1和s2中均有的字符个数

charstrstr(constchars1,constchars2)

扫描字符串s2,并返回第一次出现s1的位置

charstrtok(chars1,constchars2)

检索字符串s1,该字符串s1是由字符串s2中定义的定界符所分隔

charstrupr(chars)

将字符串s中的小写字母全部转换成大写字母,并返回转换后的字符串



存贮分配子程序,所在函数库为dos.h、alloc.h、malloc.h、stdlib.h、proce

ss.h

intallocmem(unsignedsize,unsignedseg)

利用DOS分配空闲的内存,size为分配内存大小,seg为分配后的内存指针

intfreemem(unsignedseg)

释放先前由allocmem分配的内存,seg为指定的内存指针

intsetblock(intseg,intnewsize)

本函数用来修改所分配的内存长度,seg为已分配内存的内存指针,newsize为

新的长度

intbrk(voidendds)

本函数用来改变分配给调用程序的数据段的空间数量,新的空间结束地址为en

dds

charsbrk(intincr)

本函数用来增加分配给调用程序的数据段的空间数量,增加incr个字节的空间

unsignedlongcoreleft()本函数返回未用的存储区的长度,以字节为单位

voidcalloc(unsignednelem,unsignedelsize)

分配nelem个长度为elsize的内存空间并返回所分配内存的指针

voidmalloc(unsignedsize)分配size个字节的内存空间,并返回所分配内

存的指针

voidfree(voidptr)释放先前所分配的内存,所要释放的内存的指针为ptr

voidrealloc(voidptr,unsignednewsize)

改变已分配内存的大小,ptr为已分配有内存区域的指针,newsize为新的长度,

Page18of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

返回分配好的内存指针.

longfarcoreleft()本函数返回远堆中未用的存储区的长度,以字节为单位

voidfarfarcalloc(unsignedlongunits,unsignedlongunitsz)

从远堆分配units个长度为unitsz的内存空间,并返回所分配内存的指针

voidfarmalloc(unsignedlongsize)

分配size个字节的内存空间,并返回分配的内存指针

voidfarfree(voidfarblock)

释放先前从远堆分配的内存空间,所要释放的远堆内存的指针为block

voidfarfarrealloc(voidfarblock,unsignedlongnewsize)

改变已分配的远堆内存的大小,block为已分配有内存区域的指针,newzie为新

的长度,返回分配好的内存指针



时间日期函数,函数库为time.h、dos.h

在时间日期函数里,主要用到的结构有以下几个:

总时间日期贮存结构tm

┌──────────────────────┐

│structtm│

│{│

│inttm_sec;/秒,0-59/│

│inttm_min;/分,0-59/│

│inttm_hour;/时,0-23/│

│inttm_mday;/天数,1-31/│

│inttm_mon;/月数,0-11/│

│inttm_year;/自1900的年数/│

│inttm_wday;/自星期日的天数0-6/│

│inttm_yday;/自1月1日起的天数,0-365/│

│inttm_isdst;/是否采用夏时制,采用为正数/│

│}│

└──────────────────────┘

日期贮存结构date

┌───────────────┐

│structdate│

│{│

│intda_year;/自1900的年数/│

│charda_day;/天数/│

│charda_mon;/月数1=Jan/│

│}│

└───────────────┘

时间贮存结构time

┌────────────────┐

│structtime│

│{│

│unsignedcharti_min;/分钟/│

│unsignedcharti_hour;/小时/│

│unsignedcharti_hund;│

│unsignedcharti_sec;/秒/│

││

└────────────────┘

charctime(longclock)

本函数把clock所指的时间(如由函数time返回的时间)转换成下列格式的字符

串:

MonNov2111:31:541983\n\0

charasctime(structtmtm)

本函数把指定的tm结构类的时间转换成下列格式的字符串:

MonNov2111:31:541983\n\0

Page19of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm



doubledifftime(time_ttime2,time_ttime1)

计算结构time2和time1之间的时间差距(以秒为单位)

structtmgmtime(longclock)

本函数把clock所指的时间(如由函数time返回的时间)转换成格林威治时间,并

以tm结构形式返回

structtmlocaltime(longclock)

本函数把clock所指的时间(如函数time返回的时间)转换成当地标准时间,并以

tm结构形式返回

voidtzset()本函数提供了对UNIX操作系统的兼容性

longdostounix(structdatedateptr,structtimetimeptr)

本函数将dateptr所指的日期,timeptr所指的时间转换成UNIX格式,并返回自

格林威治时间1970年1月1日凌晨起到现在的秒数

voidunixtodos(longutime,structdatedateptr,structtimetimept

r)

本函数将自格林威治时间1970年1月1日凌晨起到现在的秒数utime转换成D

OS格式并保存于用户所指的结构dateptr和timeptr中

voidgetdate(structdatedateblk)

本函数将计算机内的日期写入结构dateblk中以供用户使用

voidsetdate(structdatedateblk)

本函数将计算机内的日期改成由结构dateblk所指定的日期

voidgettime(structtimetimep)

本函数将计算机内的时间写入结构timep中,以供用户使用

voidsettime(structtimetimep)

本函数将计算机内的时间改为由结构timep所指的时间

longtime(longtloc)

本函数给出自格林威治时间1970年1月1日凌晨至现在所经过的秒数,并将该

值存于tloc所指的单元中.

intstime(longtp)本函数将tp所指的时间(例如由time所返回的时间)写入

计算机中.















posted@2006-11-0822:31solary阅读(2105)评论(1)编辑收藏网摘所属

分类:C&C++

发表评论

#1楼2008-05-1316:50|蒋振凯[未注册用户]回复引用

兴奋啊!终于找到了这么多库函数!

刷新评论列表切换模板









姓名

[登录][注册]

主页



看看2009年的发财点子

好商机新项目赚钱项目精选推荐搜易创业超市,给想发财的人更多选择

www.sooe.cn

Page20of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

Email

(仅博主可见)

验证码

看不清,换一张

内容(请不要发表任何与政治相关的内容)



网站首页



新闻频道



.NET频道



社区



博问



网摘



招聘



找找看



RememberMe?gfedcb



提交

登录使用高级评论新用户注册返回页首恢复上次提交

[使用Ctrl+Enter键可以直接提交]

ASP.NETMVC专题发布

.NET频道上线测试中

微软2009开发者大赛正在进行

找找看





China-pub计算机图书网上专卖店!6.5万品种2-8折!

近千种9-95新二手计算图书火热销售中!



相关文章:

如何编写一个C#程序

如何配置C#命令行编译器

数据库连接字符串大全

C#下如何实现服务器+客户端的聊天程序

关于C++/CLI的困惑

C++自学,入门该读哪些书?

发现笔试考C++的多,谁能推荐两天C++的电子书

建议把C++博客也整合到一块来



相关链接:



所属分类的其他文章:

C语言函数大全(w开头)--资料收集

C语言函数大全(v开头)--资料收集

C语言函数大全(u开头)--资料收集

C语言函数大全(t开头)--资料收集

C语言函数大全(s开头)(2)--资料收集

C语言函数大全(s开头)(1)--资料收集

C语言函数大全(q,r开头)--资料收集

C语言函数大全(p开头)--资料收集

C语言函数大全(n,o开头)--资料收集

C语言函数大全(l开头)--资料收集



最新IT新闻:

传微软将投入1亿美元宣传Kumo品牌

IBM收购Sun或下周公布价格调至每股9到10美元

iPhone已成为游戏平台威胁索尼任天堂

Page21of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm



IE8"开发人员工具"使用详解下

ASP.NETMVCTrainingKit发布了



Copyright?2009solary

Page22of22

2009-4-3file://F:\DOCUME~1\lichao\LOCALS~1\Temp\KABU69VF.htm

献花(0)
+1
(本文系小云蔡首藏)