当前位置:天才代写 > tutorial > C语言/C++ 教程 > c语言常用库函数利用要领及用途

c语言常用库函数利用要领及用途

2017-11-03 08:00 星期五 所属: C语言/C++ 教程 浏览:940

副标题#e#

absread()读磁盘绝对扇区函数

原形:int absread(int drive,int num,int sectnum,void *buf)

成果:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS间断0x25读取)num个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。

参数:drive=0对应A盘,drive=1对应B盘。

返回值:0:乐成;-1:失败。

头文件:dos.h

abswrite()写磁盘绝对扇区函数

原形:int abswrite(int drive,int nsects,int lsect,void *buffer)

drive=0(A驱动器)、1(B驱动器)、

nsects=要写的扇区数(最多64K个);

lsect=起始逻辑扇区号;

buffer=要写入数据的内存起始地点。

成果:将指定内容写入(挪用DOS间断0x26)磁盘上的指定扇区,纵然写入的处所是磁盘的逻辑布局、文件、FAT表和目次布局地址的扇区,也照常举办。

返回值:0:乐成;-1:失败。

头文件:dos.h

atof()将字符串转换成浮点数的函数

原形:double atof(const char *s)

成果:把s所指向的字符串转换成double范例。

s名目为:标记 数字.数字 E标记 数字

返回值:字符串的转换值。

头文件:math.h、stdlib.h

atoi()将字符串转换成整型数的函数

原形:int atoi(const char *s)

成果:把s所指向的字符串转换成int范例。

s名目为:标记 数字

返回值:字符串的转换值。若堕落则返回0。

头文件:stdlib.h

atol()将字符串转换生长整型数的函数

原形:long atol(const char *s)

成果:把s所指向的字符串转换成long int范例。

s名目为:标记 数字

返回值:字符串的转换值。若堕落则返回0。

头文件:stdlib.h

bcd()把一个数转换成对应的BCD码的函数

原形:bcd bcd(int x)

bcd bcd(double x)

bcd bcd(double x,int decimals)

留意:BCD码的精度可达17位。参数decimals是可选的,用来指定转换后小数点后的位数。

头文件:bcd.h

bdos()

原形∶int bdos(int fnum,unsigned dx,unsigned al)

个中fnum是系统挪用号;dx是传给寄存器DX的值;al是传给寄存器AL的值;

成果∶DOS系统挪用(INT21H)

返回值∶AX中的值

biosdisk()挪用BIOS磁盘驱动措施函数

原形:char biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer)

成果:利用间断0x13,直接挪用BIOS举办磁盘操纵

参数:(1)cmd:

2-数据以每扇区512字节的名目读入buffer,起始扇区由head、track和sector定,扇区数由nsects定。

3-将buffer中的数据按每扇区512字节写入磁盘。

4-对扇区举办数据校验。

6-名目化一个磁盘并对化扇区配置化符号。

8-返回当前驱动器参数在buffer的前4个字节中。

10-长读,每扇区读入512字节加上特另外4个字节。

11-长写,每扇区写入512字节加上特另外4个字节。

(2)drive:0-第一个软驱;1-第二个软驱;0x80-第一个硬驱

(3)head:磁头

(4)track:磁道

(5)sector:扇区

(6)nsects:扇区数

(7)buffer:数据缓冲区,界说为unsigned char buffer[];

返回值:0x00-操纵乐成

0x01-错误呼吁

0x03-诡计写具有写掩护的磁盘

0x07-驱动器参数配置错误

0x10-磁盘读/CRC/ECC错误

头文件:bios.h

注:对付硬盘主引导记录扇区head=0,track=0,sector=1


#p#副标题#e#

biosprint()挪用BIOS打印机I/O接口的函数

原形:int biosprint(int cmd,int abyte,int port)

成果:通过BIOS间断0x17在由参数port指定的打印机上完成各类打印机成果。

port=0(LPT1)

=1(LPT2);

cmd=0(打印字符abyte)

1(初始化打印机端口)

2(读打印机状态);

abyte=0-255;

返回值:打印机状态

位0(设备超时);位3(I/O堕落);位4(打印机已选择);位5(没纸);位6(打印机确认);位7(不忙)

头文件:bios.h

calloc()分派内存函数

原形:void *calloc(size_t nitems,size_t size)

成果:在堆中分派一块内存,将该内存的内容全部清0。

返回值:返回指向新分派内存的指针。空间不足则返回NULL。

头文件:stdlib.h、calloc.h

ceil()

原形∶double ceil(double num)

成果∶求不小于num的最小双精度整数

头文件∶math.h

cgets()读字符串函数

原形:char *cgets(char *str)

成果:从节制台读入一个字符串,并将该字符串(和字符串长度)存入有str所指向的地点中。

留意:在挪用cgets之前,必需将要读入的字符串最大长度存入str[0]中,返回时str[1]被配置为实际读入的字符数。实际字符串内容从str[2]开始,以空字符()末了。

返回值:指向str[2]的指针。

头文件:conio.h

chdir()改变当前目次的函数

原形:int chdir(const char *path)

成果:把由path指定的目次改为当前目次。path参数中可以指定驱动器号,如“a:\ddd”, 但只是改变该驱动器上的当前目次,对当前勾当驱动器上的当前目次无影响。

返回值:0(乐成);-1(失败)

头文件:dir.h

_chmod()改变文件存取权限的函数

原形:int _chmod(const char *path,int func[,int attrib])

成果:读取(func=0时)或配置(func=1时)DOS文件属性。

attrib=FA_RDONLY 只读

attrib=FA_HIDDEN 埋没文件

attrib=FA_SYSTEM 系统文件

attrib=FA_LABLE 卷标

attrib=FA_DIREC 目次

attrib=FA_ARCH 档案

返回值:失败时返回-1。乐成时返回文件的属性字节,假如 返回值&FA_RDONLY 不便是0,则文件是只读文件;……

头文件:io.h、dos.h

chmod()改变文件存取权限的函数

原形:int chmod(const char *path,int amode)

成果:按照amode的值,配置由path所指文件的存取权限。

amode的值     存取权限

S_IWRITE      答允写

S_IREAD      答允读(只读)

S_IREAD|S_IWRITE  可读可写

返回值:0(乐成);-1(失败)

头文件:io.h、sysstat.h

clock()

原形∶long clock(void)

成果∶测得从措施开始到挪用随处理惩罚机所用的时间

头文件∶time.h

close()封锁文件函数

原形:int close(int handle)

#p#分页标题#e#

成果:封锁由文件句柄所指向的文件,句柄是挪用_creat、creat、creatnew、creattemp、dup、dup2、_open或open时获得的。该函数并不在文件末端写一个Ctrl-Z字符,假如想用该字符竣事文件,必需显式地给出该字符。

#p#副标题#e#

返回值:0(乐成);-1(失败)

头文件:io.h

closegraph()封锁图形函数

原形:void far closegraph(void)

成果:释放图形系统分派的所有内存,将屏幕规复到挪用initgraph之前的模式。

#p#副标题#e#

头文件:graphics.h

cos()

原形∶double cos(double arg)

成果∶计较arg(弧度)的余弦值

头文件∶math.h

ctrlbrk()配置ctrl-break处理惩罚措施的函数

原形:void ctrlbrk(int(*handle)(void))

成果:修改间断向量0x23,利用新的ctrl-break间断处理惩罚函数。

用法:ctrlbrk(函数名);

先界说函数:int 函数名(void){…}

头文件:dos.h

delay()暂停函数

原形:void delay(unsigned milliseconds)

成果:暂就绪前所执行的措施milliseconds毫秒。

头文件:dos.h

disable()屏蔽间断的宏

原形:void disble(void)

成果:屏蔽间断,只答允从外部设备来的不行屏蔽间断(NMI)。

头文件:dos.h

enable()开硬件间断的宏

原形:void enable(void)

成果:开放间断,答允接管任何设备发生的间断。

头文件:dos.h

exec()加载并运行其它措施的函数族

execl(),execle(),execlp(),execlpe(),

execv(),execve(),execvp(),execvpe()

原形∶ int execl(char *path,char *arg0,*arg1,…,*argn,NULL)

int execle(char *path,char *arg0,*arg1,…,*argn,NULL,char **env)

int execlp(char *path,char *arg0,*arg1,…,*argn,NULL)

int execlpe(char *path,char *arg0,*arg1,…,*argn,NULL,char **env)

int execv(char *path,char *argv[])

int execve(char *path,char *argv[],char **env)

int execvp(char *path,char *argv[])

int execvpe(char *path,char *argv[],char **env)

个中,path是挪用的子措施的文件名,在exec后头的后缀具有某种成果:

p暗示函数可以或许在由DOS情况变量PATH的目次中搜索子历程文件,假如path中未指明文件地址目次,函数将首先在当前目次中找,然后在DOS情况变量指定的目次中找。

l暗示参数指针(arg0,…,argn)按单独参数传送。当预先知道要传送的参数个数时,凡是用带后缀l的函数。

v暗示参数指针(arg0,…,argn)按指针数组传送。当要传送的参数可变时,利用带后缀v的函数。

e暗示参数env可以传送到子历程,该函数可用来修改子历程的情况。若无e后缀,子历程将担任父历程的情况。

留意:arg0+…+argn,或arg[0]+…+arg[n]的总长度必须小于128字节。当挪用exec函数时,原先已经打开的文件在子历程中仍然是打开的。

成果:加载并运行其它措施,挪用时必需有足够的内存空间用于加载和执行子措施,子措施将包围父措施。

头文件:process.h

farcalloc()从远堆中分派内存的函数

原形:void far *farcalloc(unsigned long nunits,unsigned long unitsz)

成果:从远堆中为包括nunits个元素的数组分派内存,每一区unitsz字节长。

用法:fptr=farcalloc(数目,sizeof(char));

先界说:char far *fptr;

留意:所有可用RAM能被分派;大于64K的块能被分派;用远指针存取该块。微模式不能用。

返回值:返回指向新分派块的指针,若内存不足,则返回NULL。

头文件:alloc.h

farfree()从远堆中释放一块已分派内存的函数

原形:void farfree(void far *block)

头文件:alloc.h

farmalloc()从远堆中分派内存的函数

原形:void far *farmalloc(unsigned long nbytes)

利用方法:fptr=farmalloc(字节数);

先界说char far *fptr;

#p#副标题#e#

成果:从远堆中分派长nbytes字节的内存。

留意:所有可用RAM能被分派;大于64K的块能被分派;用远指针存取该块。微模式不能用。

返回值:返回指向新分派内存的指针,若内存不足,则返回NULL。

头文件:alloc.h

farrealloc()调解远堆中已分派块的函数

原形:void far *farrealloc(void far *oldblock,unsigned long nbytes)

返回值:返回调解后的新内存地点。若不能从头分派,则返回NULL。

头文件:alloc.h

fclose()封锁一个流函数

原形:int fclose(FILE *stream)

利用方法:fclose(文件指针名);个中文件指针名=fopen();

成果:封锁指定的流,封锁前排除所有与stream相联的缓冲区,释放系统分派的缓冲区,但由setbuf配置的缓冲区不能自动释放。

返回值:0(乐成);EOF(失败)

头文件:stdio.h

fcloseall()封锁打开的流的函数

原形:int fcloseall(void)

成果:封锁所有打开的流,由stdin、stdout、stdprn、stderr和stdaux配置的流除外。

返回值:封锁流的总数。假如发明错误则返回EOF。

头文件:stdio.h

feof()查抄文件是否竣事的函数

原形∶int feof(FILE *fp)

返回值∶文件竣事返回非0值,不然返回0。

头文件∶stdio.h

fgets()从流中读取一字符串的函数

原形:char *fgets(char s[],int n,FILE *stream)

利用名目:fgets(字符串指针,字符个数,文件指针)

#p#分页标题#e#

成果:从输入流stream中读入字符存到s串中。当读了n-1个字符或碰着换行符时,函数遏制读进程。fgets在s串尾保存换行字符。读入的最后一个字符后头加一个空字符。

返回值:乐成时返回字符串参数s,堕落或碰着文件竣事时,返回NULL。

头文件:stdio.h

findfirst()函数和findnext()函数

挪用方法:整形数=findfirst(文件名,&布局变量名,属性常数组合(如0x26));个中界说struct ffblk 布局变量名;

原形:int findfirst(path,buffer,attr)和int findnext(buffer)

char *path;//要检索的文件名

struct ffblk

{

char ff_reserved[21];

char ff_attrib;//被检索的文件属性

unsigned ff_ftime;//最后修改的时间

//(0-4位:秒数/2;5-10位:分数;11-15位:小时数)

unsigned ff_fdate;//最后修改的日期

//(0-4位:日;5-8位:月;9-15位:年减1980)

long ff_fsize;//文件巨细

char ff_name[13];//组名

}*buffer;

int attr;//要检索的文件属性

成果:检索由path和attr指定的文件,把功效返回到buffer。findfirst返回关于第一个指定文件的信息,findnext继承检索。

返回值:0(检索乐成),-1(没有找到指定的文件)

属性常数:

FA_NORMAL(0x00)  含意:Normal file, no attributes

FA_RDONLY(0x01)  含意:只读

FA_HIDDEN(0x02)  含意:隐含文件

FA_SYSTEM(0x04)  含意:系统文件

FA_LABEL(0x08)   含意:卷标

FA_DIREC(0x10)   含意:子目次

FA_ARCH(0x20)   含意:修改的文件Archive

头文件:dir.h(dos.h)

floodfill()填充区域的函数

原形:void far floodfill(int x,int y,int border)

成果:在图形设备上用颜色border围起来的区域将用当前填充颜色填充。(x,y)是待填充区域的起点,若起点在关闭区域内,则区域内被填充;若起点在关闭区域外,则区域外被填充。

#p#副标题#e#

头文件:graphics.h

floor()

原形∶double floor(double num)

成果∶求不大于num的最大双精度整数

头文件∶math.h

fnmerge()成立文件路径函数

原形:void fnmerge(char *path,const char *drive,const char *dir, const char *name,const char *ext)

成果:合成drive:dir ame.ext,放在path

头文件:dir.h

fnsplit()解析完整的路径名函数

原形:int fnsplit(char *path,const char *drive,const char *dir,const char *name,const char *ext)

成果:把文件名路径path分成4个部门存放。

个中drive中有冒号;dir中有开始和末了的反斜杠;ext包罗开始圆点

返回值:假如有扩展名,则 返回值&EXTENSION!=0

假如有文件名,则 返回值&FILENAME!=0

假如有目次名,则 返回值&DIRECTORY!=0

假如有驱动器号,则返回值&DIRVE!=0

头文件:dir.h

fopen()打开一个流函数

原形:FILE *fopen(const char *filename,const char *mode)

成果:打开用filename指定的文件,并使其与一个流相联。

利用方法:文件指针名=fopen("文件名","处理惩罚方法")

"处理惩罚方法"取:

"rt"  打开一个文本文件,只能读。

"wt"  生成一个文本文件,只能写。若文件存在则被重写。

"at"  打开一个文本文件,只能在文件尾部添加。

"rb"  打开一个二进制文件,只能读。

"wb"  生成一个二进制文件,只能写。

"ab"  打开一个二进制文件,只能在文件尾部添加。

"rt+"  打开一个文本文件,可读可写。

"wt+"  生成一个文本文件,可读可写。

"at+"  打开一个文本文件,可读可添加。

"rb+"  打开一个二进制文件,可读可写。

"wb+"  生成一个二进制文件,可读可写。

"ab+"  打开一个二进制文件,可读可添加。

返回值:指明流的指针(乐成时)或NULL(失败时)

注:需先界说 FILE *文件指针名;

"文件名"若用 argv[1]取代,则可利用呼吁行形式指定文件名

FP_OFF()获取远地点偏移量的宏

原形:unsigned FP_OFF(void far *p)

成果:取得和配置远指针*p的偏移量

返回值:偏移量

头文件:dos.h

fprintf()传送输出到一个流中的函数

原形:int fprintf(FILE *stream,const char *format[,argument,…])

成果:①向文件指针指向的文件输出ASCⅡ代码

②向显示器输堕落误信息

利用形式:

①fprintf(文件指针,"输格外式",输出项系列);

②fprintf(stderr,"错误信息");

利用实例:fprintf(stream,"%d %c %f",i,c,f);

个中界说FILE *stream;

int i; char c; float f;

返回值:乐成则返回输出的字节数,错误则返回EOF。

头文件:stdio.h

FP_SEG()获取远地点段值的宏

原形:unsigned FP_SEG(void far *p)

成果:取得和配置远指针*p段地点值

返回值:段地点值

头文件:dos.h

free()释放已分派内存的函数

原形:void free(void *block)

成果:释放由calloc、malloc、realloc函数挪用所分派的内存。

#p#副标题#e#

头文件:stdlib.h、alloc.h

fscanf()名目化输入函数

原形:int fscanf(FILE *stream,const char *format[,address,…])

#p#分页标题#e#

成果:从一个流中扫描输入字段,一次扫描一个字符,每个输入字段按照format所指名目指示符名目化后,把输入字段存在format后头由地点参数给出的位置上。

利用名目:fscanf(文件指针,"输入名目",输入项系列);

利用实例:fscanf(fp,"%d",&b);

从fp指向的文件中读取十进制整数 (ASCⅡ形式)赋予变量b

注:当文件指针是stdin时,与scanf成果完全沟通

头文件:stdio.h

fseek()移动文件指针函数

原形:int fseek(FILE *stream,long offset,int whence)

浸染:强制一个文件的位置指针指向某个特定的位置(甚至超出文件的尾部)。

利用名目:fseek(*文件指针,偏移(长整型),起点)

界说 FILE *文件指针名;

"起点"取值:

0或SEEK_SET(暗示文件开头)

1或SEEK_CUR(暗示当前位置)

2或SEEK_END(暗示文件尾端)

返回值:0暗示乐成,非0值暗示失败

头文件:stdio.h

fwrite()把参数写入流中的函数

原形:size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream)

成果:附加n个数据项(每个数据项长度为size个字节)到指定的输出文件后,数据从ptr处开始添加。ptr是指向任意工具的指针。

返回值:挪用乐成时返回实际写的数据项数,堕落时返回一短整形数值。

头文件:stdio.h

例:fwrite(&s,sizeof(s),1,stream);

个中s是一布局变量,stream=fopen();

gcvt()把双精度数转化成字符串的函数

原形∶char*gcvt(value,ndigit,buf)

个中∶double value是待转化数

int ndigit是转化长度

char *buf生存转化后的地点

头文件∶stdlib.h

geninterrupt()执行间断函数

原形:void geninterrupt(int n)

挪用方法:geninterrupt(软间断号)

成果:发生一个8086软间断

注:需先向寄存器通报进口信息(用伪变量)

譬喻  伪变量=要赋的值(进口信息);

挪用geninterrupt()函数后得接管出口信息

譬喻  变量名=伪变量

伪变量∶Turbo C 答允利用伪变量直接会见相应的8086寄存器。伪变量的范例有两种。

① unsigned int : _AX、 _BX、 _CX、 _DX、 _CS、 _DS、 _SS、 _ES、_SP、 _BP、 _DI、 _SI

② unsigned char: _AL、 _AH、 _BL、 _BH、 _CL、 _CH、 _DL、 _DH

getc()从流中取字符的宏

原形:int getc(FILE *stream)

成果:返回输入流stream中一个字符,移动文件指针使之指向下一个字符。

利用名目:字符变量=getc(文件指针)

(正常环境下读取到代码值,读到文件尾或堕落时返回EOF)

注:需界说 char 字符变量;FILE *文件指针;

头文件:stdio.h

getch()从键盘无回显地读取一字符的函数

成果:将键盘上输入的单个字符的值(ASCⅡ 码)立即赋给字符型变量

挪用方法:字符形变量=getch()

注:需先界说 char 字符形变量;

头文件:conio.h

getchar()从stdin流中读取一个字符的函数

成果:将键盘上输入的单个字符的值(ASCⅡ 码)回车后赋给字符型变量

挪用方法:字符型变量=getchar()

注:需先界说 char 字符型变量;

头文件:stdio.h

#p#副标题#e#

getcurdir()读取指定驱动器的当前目次的函数

原形:int getcurdir(int drive,char directory)

drive=0(缺省);1(A驱动器);…

directory用来存放目次名,不包罗驱动器名,不以反斜杠开始。

返回值:0(挪用乐成);1(堕落)

头文件:dir.h

getcwd()读取当前目次的函数

原形:char *getcwd(char *buf,int buflen)

#p#分页标题#e#

成果:读取当前目次的完整路径名(包罗驱动器名),最长为buflen个字节,存放在buf中。假如buf为NULL,函数将分派一个buflen字节长的缓冲区,今后可将本函数的返回值作为free函数的参数来释放该缓冲区。

返回值:若buf非空,挪用乐成返回buf,堕落返回NULL;若buf为NULL,返回指向已经分派的内存缓冲区地点。

头文件:dir.h

getdate()读取系统日期函数

原形:void getdate(pdate)
   struct date
   {
   int da_year;
   int da_day;
   int da_mon;
   };
   struct date *pdate;

头文件:dos.h

getdfree()读取磁盘空闲空间的函数

原形:void getdfree(drive,dtable)
   unsigned char drive;驱动器号(0-当前;1-A;2-B;...)
   struct dfree
   {
   unsigned df_avail;//可利用的簇数
   unsigned df_total;//每个驱动器的簇数
   unsigned df_bsec;//每个扇区的字节数
   unsigned df_sclus;//每个簇的扇区数(堕落时返回0xffff)
   }*dtable;

成果:把由drive指定的关于驱动器的信息返回到dtable

getdisk()读取当前磁盘驱动器号函数

原形:int getdisk(void)

成果:取恰当前驱动器号(0=A;1=B;….)

头文件:dir.h

getenv()读取情况变量的当前值的函数

原形:char *getenv(const char *name)

用法:s=getenv("情况变量名");

需先界说char *s;

成果:返回一给定的情况变量值,情况变量名可大写或小写。假如指定的变量在情况中未界说,则返回一空串。

头文件:stdlib.h

getimage()将指定区域的位图象存入内存的函数

原形:void far getimage(int left,int top,int right,int bottom,void far *bitmap)

成果:将图像(矩形区域)从屏幕拷贝到内存,*bitmap指向内存中存放图像的区域。该区域的前两个字节用于存放矩形的高和宽。

头文件:graphics.h

getmaxx()返回屏幕上最大的X坐标值的函数

原形:int far getmaxx(void)

成果:返回当前图形驱动措施和图形模式下最大的X坐标值。

头文件:graphics.h

getmaxy()返回屏幕上最大的Y坐标值的函数

原形:int far getmaxy(void)

成果:返回当前图形驱动措施和图形模式下最大的Y坐标值。

头文件:graphics.h

getpixel()读取像素颜色的函数

原形:unsigned far getpixel(int x,int y)

头文件:graphics.h

getpsp()

原形∶unsigned getpsp(void)

成果∶利用DOS系统挪用0x62,返回措施段前缀(PSP)的段地点

头文件∶dos.h

gets()从尺度输入流stdio中读取一字符串的函数

成果:将键盘上输入的字符串立即赋予字符串变量并显示出来

挪用方法:gets(字符串变量名)

注:需界说 char *字符串变量名;

gettime()读取系统时间的函数

#p#副标题#e#

原形:void gettime(ptime)
   struct time
   {
   unsigned char ti_min;
   unsigned char ti_hour;
   unsigned char ti_hund;//百分之一秒
   unsigned char ti_sec;
   };
   struct time *ptime;

getvect()读取间断向量函数

原形:void interrupt(*getvect(int interruptno))

成果:读入由interruptno(0-255之间)所指定的间断向量值,并把该间断向量值作为间断函数的远指针返回。

返回值:指定间断向量的当前4字节值。

头文件:dos.h

利用实例:oldfunc=getvect(5);

先界说void interrupt(*oldfunc)();

用后规复setvect(5,oldfunc);

getx()返回当前图形方法下位置的X坐标值的函数

原形:int far getx(void);

头文件:graphics.h

gety()返回当前图形方法下位置的Y坐标值的函数

原形:int far gety(void);

头文件:graphics.h

imagesize()返回生存图像缓冲区巨细的函数

原形:unsigned far imagesize(int left,int top,int right,int bottom)

成果:确定生存图像所需的存储区巨细。

返回值:返回存储区的巨细(字节),若所需内存大于便是64K-1字节,则返回0xffff(-1)。

头文件:graphics.h

initgraph()显示模式节制函数(初始化图形系统函数)

成果:把图形适配器配置为一种图形模式,将选择的图形驱动措施(在BGI文件中)装入到内存。

挪用方法:

void far initgraph(int far *driver,int far *mode,char far*path)

个中: *driver可以是数值(0-10),也但是标记值(DETECT、CGA、MCGA、EGA、EGA64、EGAMONO、RESERVED、HERCMONO、ATT400、VGA、 PC3270)。

#p#分页标题#e#

*mode参数从图形系统为各类常用的图形适配器配置的图形模式中(CGAC0、…、IBM8514HI–见头文件graphics.h)选取。常用的有:VGAMED或1(640×350)(等效于BIOS的模式15)、EGAHI或1(640×350)等。

path指向的字符串为装入驱动措施的路径。假如缺省路径,驱动措施在当前目次。

竣事要领:

①void far closegraph()函数用于当措施还要继承在字符模下运行时。它释放由图形函数所占用的内存,同时把屏幕模式规复为挪用initgraph()之前的模式。

②void far restorecrtmode()函数用于竣事运行。将图形适配器配置到本来的模式。任何分派的内存都将自动释放。

头文件:graphics.h

inport()从端口中读入一个字的函数

原形:int inport(int portid)

挪用方法:整型变量=inport(0x端标语);

成果:从指定端口地点读一个字。

头文件:dos.h

inportb()从端口读入一个字节的函数

原形:unsigned char inportb(int portid)

挪用方法:字符变量=inportb(0x端标语);

成果:从指定端口地点读一个字节。

头文件:dos.h

int86()执行间断函数(挪用8086软间断函数)

原形:int int86(int intno,union REGS *inregs,union REGS *outregs)

挪用方法:int86(间断号,&输入指针名,&输出指针名)

返回值:间断处理惩罚竣事时的AX寄存器的值,错误时outregs->x.cflag!=0

成果:函数int86() 用来执行指定的8086软间断。首先把输入指针所指的共用体中的内容拷贝到CPU 的寄存器中,随即发生对应的间断,返回后将CPU寄存器(AX)的内容拷贝到输出指针指向的共用体中。在利用int86() 函数举办BIOS接口的系统挪用时,有的间断挪用设有若干选择项,这些选择项可以按照挪用时AH寄存器中的值来举办会见。

#p#副标题#e#

注:1.需先界说 union REGS 输入指针名,输出指针名;

2.向寄存器通报进口信息

输入指针名.x.寄存器名=要赋的值(进口信息);

3.挪用int86后得接管出口信息

变量名=输出指针名.x.寄存器名

4.REGS的界说(在dos.h中):

struct WORDREGS{unsigned int ax, bx, cx, dx, si, di, cflag, flags;}

struct BYTEREGS{unsigned char al, ah, bl, bh, cl, ch, dl, dh;}

union REGS{struct WORDREGS x;struct BYTEREGS h;}

头文件:dos.h

int86x()执行间断函数 (通用8086软间断接口函数)

头文件:dos.h

原形:int int86x(int intno,union REGS *inregs,union REGS *outregs,struct SREGS * segregs)

挪用方法:int86x(间断号,&输入指针名,&输出指针名,&段寄存器指针名);

注1:需先界说 union REGS 输入指针名,输出指针名;

  union REGS 示意图
   struct     struct
   WORDREGS    BYTEREGS
   ┌  ┌───────┬──────┐──┬──  ┐
   │  │       │   al   │ 1 byte   │
   │  │   ax   ├──────┤──┴─ 2 bytes
   │  │       │   ah   │       │
   │  ├───────┼──────┤─────  ┘
   │  │       │   bl   │
   │  │   bx   ├──────┤
   │  │       │   bh   │
   │  ├───────┼──────┤
   │  │       │   cl   │
   │  │   cx   ├──────┤
   │  │       │   ch   │
   │  ├───────┼──────┤
   │  │       │   dl   │
   │  │   dx   ├──────┤
   │  │       │   dh   │
   union regs├───────┼──────┤
   │  │       │      │
   │  │   si   │      │
   │  │       │      │
   │  ├───────┤      │
   │  │       │      │
   │  │   di   │      │
   │  │       │      │
   │  ├───────┤      │
   │  │       │      │
   │  │  cflag   │      │
   │  │       │      │
   │  ├───────┤      │
   │  │       │      │
   │  │  flags   │      │
   │  │       │      │
   └  └───────┴──────┘
   │   x 两个布局变量 h  │
   └──  共享同一存储域 ──┘

#p#副标题#e#
#p#分页标题#e#

个中字段flags对应于符号寄存器。字段cflag仅对应于进位符号位,函数在挪用时不消该字段,只在返回时配置这个字段,因为很多BIOS处事都是通过进位标置为0照旧1来暗示乐成照旧失败。

注2:需先界说 struct SREGS 段寄存器指针名;

布局SREGS界说如下

struct SREGS {unsigned int es,cs,ss,ds}

函数只用了该布局中的段寄存器DS和ES。挪用时按照它们的值配置DS和ES,同时把DS和ES本来的值生存在这个布局中,返回时再规复DS和ES为本来的值,这就答允措施利用远指针或大数据编译模式。

该函数置全局变量_doserrno便是寄存器AX中的值,其返回值也便是AX中的值。

注3:向寄存器通报进口信息

输入指针名.x.寄存器名=要赋的值(进口信息);

注4:挪用int86x后得接管出口信息

变量名=输出指针名.x.寄存器名

intdos()通用dos间断接口函数

原形:int intdos(inregs,outregs)

union REGS *inregs;//挪用时的各寄存器的值

union REGS *outregs;//返回寄存器的值

成果:发生DOS软间断

留意:假如需要成果号,则装入AH;假如需要子成果号,则装入AL。

头文件:dos.h

intdosx()通用dos间断接口函数

原形:int intdosx(inregs,outregs,segregs)

union REGS *inregs;挪用时的各寄存器的值

union REGS *outregs;返回寄存器的值

struct SREGS *seregs;挪用时的段寄存器的值(还配置返回时的值)

成果:发生DOS软间断

头文件:dos.h

intr()执行8086软间断函数(改变软间断接口函数)

原形:void intr(int intno,struct REGPACK *preg)

挪用方法:intr(间断号,&布局变量名)

注1:布局REGPACK界说如下

  struct REGPACK
   {
   unsigned r_ax,r_bx,r_cx,r_dx;
   unsigned r_bp,r_si,r_di,r_ds,r_es,r_flag;}

注2:利用时先界说一个布局变量

struct REGPACK 布局变量名;

注3:进口和出口用同一个布局变量来通报寄存器的值。

布局变量名.r_ax=要赋的值;

……

intr(间断号,&布局变量名);

某变量=布局变量名.r_ax;

头文件:dos.h

itoa()把整形数转换为字符串的函数

原形:char *itoa(int value,char *string,int radix)

成果:把value的值转换为以NULL竣事的字符串,并把功效存在string中。radix是转换的基数值,在2到36之间。分派给string的空间必需可容纳返回的所有字节(最多17字节)。

返回值:指向string的指针

头文件:stdlib.h

kbhit()查抄当前按下的键的函数

原形:int kbhit(void)

成果:查抄按下的键是否有效,若有效则可用getch()或getche()读取。

返回值:假如按键有效,返回一非零值,不然返回0。

头文件:conio.h

keep()驻留并退出函数

原形:void keep(unsigned char status,unsigned size)

成果:用于安装一个TSR措施(利用DOS成果挪用0x31)。出口状态配置为在status中的值,措施占用存储空间为size,并释放内存的其余部门。

头文件:dos.h

log()

原形∶double log(double num)

成果∶求num的自然对数值

头文件∶math.h

log10()

原形∶double log10(double num)

成果∶求num以10为底的对数值

头文件∶math.h

_lrotl()将一个无标记长整形数左轮回移位的函数

#p#副标题#e#

原形:unsigned long _lrotl(unsigned long value,int count)

成果:将value向左轮回移动count位。

返回值:将value向左轮回移动count位后的值。

头文件:stdlib.h

_lrotr()将一个无标记长整形数右轮回移位的函数

原形:unsigned long _lrotr(unsigned long value,int count)

成果:将value向右轮回移动count位。

返回值:将value向右轮回移动count位后的值。

头文件:stdlib.h

lseek()移动文件指针函数

原形:long lseek(int handle,long offset,int fromwhere)

handle=open()函数的返回值(文件句柄);

fromwhere=文件位置

(SEEK_SET(0)从文件头位置;SEEK_CUR(1)从当前文件指针位置;SEEK_END(2)从文件末了位置)

成果:把文件指针移动到fromwhere所指的地点加上offset新位置的偏移上。

头文件:io.h

返回值:指针新位置的偏移量(相对付文件开始处),堕落时返回-1L。

ltoa()把长整形数转换为字符串的函数

原形:char *ltoa(long value,char *string,int radix)

#p#分页标题#e#

成果:把value的值转换为以NULL竣事的字符串,并把功效存在string中。radix是转换的基数值,在2到36之间。分派给string的空间必需可容纳返回的所有字节(最多33字节)。

返回值:指向string的指针

头文件:stdlib.h

malloc()分派内存函数

原形:void *malloc(size_t size)

成果:从堆中分派巨细为size字节的块。win32也合用。

返回值:返回新分派内存的地点,若无足够内存,返回NULL。

头文件:alloc.h、stdlib.h

mkdir()建设目次函数

原形:int mkdir(const char *path)

成果:按给定的路径成立一个新的目次

头文件:dir.h

返回值:0(乐成);-1(失败)

mktemp()成立一个独一的文件名的函数

原形:char *mktemp(char *template)

成果:利用一个独一的文件名来替换字符串template,并返回template。

头文件:dir.h

MK_FP()配置一个远指针的宏

原形:void far *MK_FP(unsigned seg,unsigned ofs)

成果:通过段值(seg)和偏移量(ofs)成立一个远指针

返回值:远指针

头文件:dos.h

movedata()拷贝数据函数

原形:void movedata(unsigned srcseg,unsigned srcoff,unsigned dstseg,unsigned dstoff,size_t n)

成果:从原地点(srcseg:srcoff)拷贝n个字节的数据到方针地点(dstseg:dstoff)。

头文件:mem.h、string.h

_open()打开一个文件举办读写的函数

原形:int _open(path,oflags)

char *path;//已成立文件的路径名

int oflags;//方法

成果:打开由path指定的文件,返回文件的句柄

返回值:0(正常竣事);-1(错误)

头文件:fcntl.h、io.h

open()打开文件举办读写的函数

原形:int open(const char *path,int access[,unsigned mode])

利用要领:文件句柄=open("文件名",打开模式|打开模式);

成果:打开path指定的文件,按照access指定的模式值读写。

access模式:

O_RDONLY 以只读方法打开

O_WRONLY 以只写方法打开

O_RDOWR  以读写方法打开

以上符号只能利用一个,以下可以用|组合利用

O_NDELAY

O_APPEND 若置位,每次写操纵前都使文件指针指到文件末端

#p#副标题#e#

O_CREAT  若文件不存在则建设

O_TRUNC  若文件已存在,则将文件长度截为0

O_EXCL  只和O_CREAT一起利用,若文件已经存在,返回错误代码

O_BINARY 以二进制方法打开

O_TEXT  以文本方法打开

假如利用了O_CREAT方法,则需要提供参数mode

(S_IWRITE可写;S_IREAD可读;S_IREAD|S_IWRITE可读写)

返回值:文件句柄(乐成时);-1(失败时)。

乐成时,文件指针指向文件头。

头文件:fcntl.h、io.h

outport()输出一个字到端口中的函数

原形:void outport(int portid,int value)

挪用方法:outport(0x端标语,要输出的字);

成果:往指定端口地点输出一个字。

头文件:dos.h

outportb()输出一个字节到端口中的函数

原形:void outportb(int portid,unsigned char value)

挪用方法:outportb(0x端标语,要输出的字节);

成果:往指定端口地点输出一个字节。

附:PC I/O地点分派

PC只用了10位地点线(A0-A9)举办译码,其寻址的范畴为0H-3FFH,共有1024个I/O地点。这1024个地点中前半段(A9=0,范畴为0H-1FFH)是属于主机板I/O译码,后半段(A9=1,范畴为200H-3FFH)则是用来扩展插槽上的I/O译码用。

  I/O端口成果表
   ———————————————————————————
   I/O地点 成果、用途
   ———————————————————————————
   0    DMA通道0,内存地点寄存器(DMA节制器1(8237))
   1    DMA通道0, 传输计数寄存器
   2    DMA通道1,内存地点寄存器
   3    DMA通道1, 传输计数寄存器
   4    DMA通道2,内存地点寄存器
   5    DMA通道2, 传输计数寄存器
   6    DMA通道3,内存地点寄存器
   7    DMA通道3, 传输计数寄存器
   8    DMA通道0-3的状态寄存器
   AH    DMA通道0-3的屏蔽寄存器
   BH    DMA通道0-3的方法寄存器
   CH    DMA排除字节指针
   DH    DMA主排除字节
   EH    DMA通道0-3的清屏蔽寄存器
   FH    DMA通道0-3的写屏蔽寄存器
   19H   DMA起始寄存器
   20H-3FH 可编程间断节制器1(8259)利用
   40H   可编程间断计时器(8253)利用,读/写计数器0
   41H   可编程间断计时器寄存器
   42H   可编程间断计时器杂项寄存器
   43H   可编程间断计时器,节制字寄存器
   44H   可编程间断计时器,杂项寄存器(AT)
   47H   可编程间断计时器,计数器0的节制字寄存器
   48H-5FH 可编程间断计时器利用
   60H-61H 键盘输入数据缓冲区
   61H   AT:8042键盘节制寄存器/XT:8255输出寄存器
   62H   8255输入寄存器
   63H   8255呼吁方法寄存器
   64H   8042键盘输入缓冲区/8042状态
   65H-6FH 8255/8042专用
   70H   CMOS RAM地点寄存器
   71H   CMOS RAM数据寄存器
   80H   出产测试端口
   81H   DMA通道2,页表地点寄存器
   82H   DMA通道3,页表地点寄存器
   83H   DMA通道1,页表地点寄存器
   87H   DMA通道0,页表地点寄存器
   89H   DMA通道6,页表地点寄存器
   8AH   DMA通道7,页表地点寄存器
   8BH   DMA通道5,页表地点寄存器
   8FH   DMA通道4,页表地点寄存器
   93H-9FH DMA节制器专用
   A0H   NM1屏蔽寄存器/可编程间断节制器2
   A1H   可编程间断节制器2屏蔽
   C0H   DMA通道0,内存地点寄存器(DMA节制器2(8237))
   C2H   DMA通道0, 传输计数寄存器
   C4H   DMA通道1,内存地点寄存器
   C6H   DMA通道1, 传输计数寄存器
   C8H   DMA通道2,内存地点寄存器
   CAH   DMA通道2, 传输计数寄存器
   CCH   DMA通道3,内存地点寄存器
   CEH   DMA通道3, 传输计数寄存器
   D0H   DMA状态寄存器
   D2H   DMA写请求寄存器
   D4H   DMA屏蔽寄存器
   D6H   DMA方法寄存器
   D8H   DMA排除字节指针
   DAH   DMA主清
   DCH   DMA清屏蔽寄存器
   DEH   DMA写屏蔽寄存器
   DFH-EFH 保存
   F0H-FFH 协处理惩罚器利用
   100H-16FH保存
   170H   1号硬盘数据寄存器
   171H   1号硬盘错误寄存器
   172H   1号硬盘数据扇区计数
   173H   1号硬盘扇区数
   174H   1号硬盘柱面(低字节)
   175H   1号硬盘柱面(高字节)
   176H   1号硬盘驱动器/磁头寄存器
   177H   1号硬盘状态寄存器
   1F0H   0号硬盘数据寄存器
   1F1H   0号硬盘错误寄存器
   1F2H   0号硬盘数据扇区计数
   1F3H   0号硬盘扇区数
   1F4H   0号硬盘柱面(低字节)
   1F5H   0号硬盘柱面(高字节)
   1F6H   0号硬盘驱动器/磁头寄存器
   1F7H   0号硬盘状态寄存器
   1F9H-1FFH保存
   200H-20FH游戏节制端口
   210H-21FH扩展单位
   278H   3号并行口,数据端口
   279H   3号并行口,状态端口
   27AH   3号并行口,节制端口
   2B0H-2DFH保存
   2E0H   EGA/VGA利用
   2E1H   GPIP(0号适配器)
   2E2H   数据获取(0号适配器)
   2E3H   数据获取(1号适配器)
   2E4H-2F7H保存
   2F8H   2号串行口,发送/保持寄存器(RS232接口卡2)
   2F9H   2号串行口,间断有效寄存器
   2FAH   2号串行口,间断ID寄存器
   2FBH   2号串行口,线节制寄存器
   2FCH   2号串行口,调制解调节制寄存器
   2FDH   2号串行口,线状态寄存器
   2FEH   2号串行口,调制解调状态寄存器
   2FFH   保存
   300H-31FH原形卡
   320H   硬盘适配器寄存器
   322H   硬盘适配器节制/状态寄存器
   324H   硬盘适配器提示/间断状态寄存器
   325H-347H保存
   348H-357H DCA3278
   366H-36FH PC网络
   372H    软盘适配器数据输出/状态寄存器
   375H-376H 软盘适配器数据寄存器
   377H    软盘适配器数据输入寄存器
   378H    2号并行口,数据端口
   379H    2号并行口,状态端口
   37AH    2号并行口,节制端口
   380H-38FH SDLC及BSC通讯
   390H-393H Cluster适配器0
   3A0H-3AFH BSC通讯
   3B0H-3B H MDA视频寄存器
   3BCH    1号并行口,数据端口
   3BDH    1号并行口,状态端口
   3BEH    1号并行口,节制端口
   3C0H-3CFH EGA/VGA视频寄存器
   3D0H-3D7H CGA视频寄存器
   3F0H-3F7H 软盘节制器寄存器
   3F8H    1号串行口,发送/保持寄存器(RS232接口卡1)
   3F9H    1号串行口,间断有效寄存器
   3FAH    1号串行口,间断ID寄存器
   3FBH    1号串行口,线节制寄存器
   3FCH    1号串行口,调制解调节制寄存器
   3FDH    1号串行口,线状态寄存器
   3FEH    1号串行口,调制解调状态寄存器
   3FFH    保存
   —————————————————————————-

#p#副标题#e#

outtextxy()在指定位置显示一字符串的函数

原形:void far outtextxy(int x,int y,char far *textstring)

成果:凭据当前对齐方法和当前字体、偏向、巨细在视区中给定位置显示一文本字符串。

留意:用textwidth和textheight函数抉择字符串的尺寸巨细。

头文件:graphics.h

peek()返回指定内存中字的函数

原形:int peek(int seg,unsigned offset)

成果:返回地点为seg:offset的字单位的值

头文件:dos.h

peekb()返回指定内存中字节的函数

原形:char peekb(int seg,unsigned offset)

成果:返回地点为seg:offset的字节单位的值

poke()在指定的内存中存储一个字的函数

原形:void poke(int seg,unsigned offset,int word)

成果:把word的16位值放到地点为seg:offset的字单位中

pokeb()在指定的内存中存储一个字节的函数

原形:void pokeb(int seg,unsigned offset,int byte)

成果:把byte的8位值放到地点为seg:offset的字节单位中

pow()

原形∶double pow(double b,double exp)

成果∶求以b为底的exp次幂的值

头文件∶math.h

printf()写名目化输出到stdout的函数

利用方法:例

①printf("%f",实型变量);

②printf("%f",(*函数指针名)(参数));

③printf("%c",字符变量);

④printf("%c",*字符串变量名即字符串地点);

只显示字符串的第一个字符。

⑤printf("%s",字符串数组名即字符串数组地点);

⑥printf("%-10s",字符串变量名);

显示字符串时限定十位(不敷则补空格),并靠左端对齐。

⑦printf("%s",*二级指针变量);

⑧printf("字符串%05d ",整型变量);

先显示字符串,然后显示整型变量的值(限五位,不敷则补零),最后换行。

注:

1.① 需先界说 float 实型变量;

② 需先界说 float (*函数指针名)(); 并有相应的函数

③ 需先界说 char 字符变量=’单个字符’;

④⑥需先界说 char *字符串变量名; 并赋值

⑤ 需先界说 char 字符串数组名[]="字符串";

⑦ 需先界说 char **二级指针变量

2.其它转换字符(在%后)有

① o 整型数以无标记的八进制形式输出

② x 整型数和伪变量以无标记的十六进制形式输出

③ u 整型数以无标记的十进制形式输出

④ e 浮点数或双精度浮点数以指数形式输出

⑤ g 选用e或f名目中输出位数较短的形式

⑥ p 以无标记的十六进制形式输出变量的地点。若要输出函数的地点,远指针用Fp;近指针用Np。

putch()向屏幕输出字符的函数

利用方法:

① putch(‘转义字符’);

② putch(‘单个字符’);

③ putch(字符变量);

注:③需先界说 char 字符变量=’单个字符’;

头文件:conio.h

putchar()在stdout上输出字符的宏

原形:int putchar(int c)

返回值:乐成返回字符c,失败返回EOF。

头文件:stdio.h

putenv()将字符串放入当前情况中的函数

原形:int putenv(const char *name)

用律例:putenv("PATH=C:BTC");

成果:把字符串name加到当前措施运行的情况中。当措施竣事后,原情况将获得规复。

返回值:0(乐成);-1(失败)

#p#副标题#e#

头文件:stdlib.h

putimage()从头写屏函数(输出一个位图象到图形屏幕上的函数)

成果:将用getimage()函数储存在buf 所指向的内存区域的图形输出到屏幕上。

原形:

void far putimage(int left,int top,void far *buf,int op)

个中op的值抉择了图形以何种方法写到屏幕上。

COPY_PUT 或0 原样复制

XOR_PUT 或1 与屏幕图形取“异或”后写入

OR_PUT 或2 与屏幕图形取“或”后写入

AND_PUT 或3 与屏幕图形取“与”后写入

NOT_PUT 或4 复制原图形的“逆”

#p#分页标题#e#

利用差异的方法将图形写到屏幕上,可以实现图形调动。譬喻,回收异或方法在原始位置重写,那么,原图将消失。 假如再利用复制方法(COPY_PUT)在一个新的处所重现该图形,就发生了图形的移动。

头文件:graphics.h

putpixel()写像素点函数

原形:void far putpixel(int x,int y,int color)

头文件:graphics.h

puts()输出一字符串到stdout(尺度输出)的函数

利用方法:

① puts("字符串");

② puts(字符串变量名即字符串变量的地点)

注:②需先界说 char *字符串变量名="字符串";

头文件:stdio.h

_read()读文件函数

原形:int _read(handle,buffer,count)

int handle;//文件句柄

void *buffer;//存放读出数据的缓冲区

unsigned count;//一次读出的字节数

成果:从由handle指定的文件中读取由count指定字节数的数据到buffer

返回值:0-0xfffe(实际读出的字节数);-1(错误)

头文件:io.h

read()读文件函数

原形:int read(int handle,void *buf,unsigned len)

#p#分页标题#e#

成果:从与handle(从creat、open、dup或dup2挪用中获得的句柄)相联的文件中读取len字节到由buf所指的缓冲区中。对付以文本方法打开的文件,read删除读入数据中的回车符。当读到Ctrl-Z字符时返回文件竣事。对付磁盘文件,read从当前文件指针处开始读取数据。在读操纵完成后,文件指针增量为读入的字节数。对付设备,直接从设备中读字节。

返回值:读入缓冲区的字节数,假如文件以文本方法打开,则不包罗回车符和Ctrl-Z字符。

头文件:io.h

realloc()从头分派内存函数

原形:void *realloc(void *block,size_t size)

block指向用malloc、calloc或realloc已获得的内存。

size是从头分派的字节。

返回值:重分派的块地点。若不能重分派,则返回NULL。

头文件:stdlib.h

rectangle()画一个矩形的函数

原形:void far rectangle(int left,int top,int right,int bottom)

成果:用当前线性、宽度和画线颜色绘制一个矩形。

头文件:graphics.h

remove()删除一个文件的函数

原形:int remove(const char *filename)

返回值:0(乐成);-1(失败)

头文件:stdio.h

rename()文件更名函数

原形:int rename(const char *oldname,const char *newname)

#p#分页标题#e#

留意:假如newname中包括了一个驱动器指示符,它必需与oldname中给出的指示符沟通。oldname和newname中的目次可以差异,因此rename函数把文件从一个目次移到另一个目次。不答允利用通配符。

返回值:0(乐成);-1(失败)

restorecrtmode()规复屏幕视频模式为挪用initgraph前的配置的函数

#p#副标题#e#

原形:void far restorecrtmode(void)

头文件:graphics.h

rmdir()删除目次函数

原形:int rmdir(const char *path)

留意:删除的目次不能是当前目次,不是根目次,是空目次

返回值:0(乐成);-1(操纵堕落)

头文件:dir.h

_rotl()将一个无标记整形数左轮回移位的函数

原形:unsigned _rotl(unsigned value,int count)

成果:将value向左轮回移动count位。

返回值:将value向左轮回移动count位后的值。

头文件:stdlib.h

_rotr()将一个无标记整形数右轮回移位的函数

原形:unsigned _rotr(unsigned value,int count)

成果:将value向右轮回移动count位。

返回值:将value向右轮回移动count位后的值。

头文件:stdlib.h

scanf()名目化输入函数

利用名目:scanf("输入名目",输入项系列)

① scanf("%f",&实型变量)

② scanf("%c",&字符变量)

③ scanf("%s",字符串变量)

④ scanf("%d",&整型变量)

注:需先界说以上各类变量如 char *字符串变量;

searchpath()按dos路径查找一个文件的函数

原形:char *searchpath(const char *file)

用法:p=searchpath("文件名"); 先界说char *p;

成果:搜索dos路径(情况变量中的path=….)来定位由file给出的文件。

返回值:指向完整路径名字符串的指针。定位失败返回NULL。

头文件:dir.h

segread()读段寄存器函数

原形:void segread(struct SREGS *segp)

浸染:把当前寄存器的值生存到SREGS型机构变量segp中。

segs.cs=代码段寄存器的值;

segs.ds=数据段寄存器的值;

segs.es=附加段寄存器的值;

segs.ss=仓库段寄存器的值;

setactivepage()配置图形输出勾当页的函数

原形:void far setactivepage(int page)

成果:使page成为当前勾当的图形页,其后所有的图形输出操纵都在page图形页举办。勾当图形页可以不是在屏幕上看到的页。

头文件:graphics.h

setcolor()配置当前要画的线颜色的函数

原形:void far setcolor(int color)

头文件:graphics.h

留意:颜色值(EGA/VGA)

0-BLACK;   1-BLUE;    2-GREEN;

3-CYAN;    4-RED;    5-MAGENTA;

6-BROWN;   7-LIGHTGRAY; 8-DARKGRAY;

9-LIGHTBLUE; 10-LIGHTGREEN;11-LIGHTCYAN;

12-LIGHTRED; 13-LIGHTMAGENTA;

14-YELLOW;  15-WHITE

setdisk()配置当前驱动器的函数

原形:int setdisk(int drive)

成果:把由drive指定的驱动器修改成当前驱动器,返回可利用的驱动器数。

头文件:dir.h

setgraphmode()将系统配置成图形模式并清屏的函数

原形:void far setgraphmode(int mode)

成果:选择一个差异于挪用initgraph()函数时所配置的缺省的图形模式。

返回值:假如给了一个对当前驱动措施来说无效的模式,则返回-10。

头文件:graphics.h

setlinestyle()配置当前画线宽度和范例的函数

原形:

void far setlinestyle(int linestyle,unsigned upattern,int thickness)

个中:linestyle=0为实线;1为点线;2为中心线;3为破折线;4为用户界说。

thickness=1为一个像素宽;3为三个像素宽。

#p#副标题#e#

只有当linestyle=4时,upattern才起浸染。

头文件:graphics.h

settextstyle()显示字符的当前配置函数

成果:配置当前输出英文字符的字体、巨细和偏向。

挪用方法:

void far settextstyle(int font,int direction,int charsize)

个中①参数font确定所选定的字体形状,

DEFAULT_FONT 或0 是8×8位图字体

TRIPLEX_FONT 或1 是三重矢量字体

SMALL_FONT 或2 是小号矢量字体

SANS_SERIF_FONT或3 是无衬线矢量字体

GOTHIC_FONT 或4 是哥特矢量字体

②参数durection字符的显示偏向,

HORIZ_DIR 或0 是程度偏向

VERT_DIR 或1 是垂直偏向

③参数charsize暗示字符放大的倍数,其值为0到10。

setvect()配置间断向量函数

setvect(int 间断号,void interrupt(*间断函数名))

成果:把间断处事措施的地点装入间断向量表中。

挪用要领:setvect(间断号,间断函数名即地点);

(1)得预先界说要取代原函数的新函数

void interrupt 间断函数名(void)

{……}

(2)得先保存原间断函数地点

void interrupt (*保存函数名)(void);

保存函数名=getvect(间断号);

(3)过后得将原间断函数地点装回向量表中

setvect(间断号,保存函数名);

setviewport()成立视口的函数

原形: void far setviewport(int left,int top,int right,int bottom,int clip)

成果:用左上角坐标left,top和右下角坐标right,bottom成立一个视口,假如clip为1,则超出视口的输出自动被剪裁掉;假如clip为0,则不被剪裁。

例:setviewport(0,0,100,100,1)成立对角线为0,0和100,100的视口,并带有剪裁成果。

注:要排除当前视口,用函数clearnviewport()。

setvisualpage()配置可见的图形页号的函数

原形:void far setvisualpage(int page)

成果:使得page成为可见的图形页。

头文件:graphics.h

sin()

原形∶double sin(double arg)

成果∶计较arg(弧度)的正弦值

头文件∶math.h

sprintf()名目化输出到数组的函数

原形∶int sprintf(buf,format,arg_list)

个中char *buf;

成果∶把arg_list参量的值按format的名目输出到buf中。

例∶sprintf(buffer,"相对扇区号∶%s(个中∶柱面号为%d/磁头号为%d/扇区号为%d)",string,cyls,head,sector);

个中char buffer[100];

char *string="  ";

int cyls,head,sector;

返回值∶实际写入数组的字符个数。

头文件∶stdio.h

strcat()

原形∶char *strcat(str1,str2)

成果∶把str2所指的字符串通接到str1所指的字符串后。

返回值∶指向str1的指针。

tan()

原形∶double tan(double arg)

成果∶计较arg(弧度)的正切值

头文件∶math.h

_write()写文件函数

原形:int _write(handle,buffer,count)

int handle;//文件的句柄

void *buffer;//存放数据的缓冲区

unsigned count;//写入的字节数

成果:从由buffer指定的缓冲区写入由count指定字节数的数据到由handle指定的文件。返回实际写入的字节数。

返回值:0-0xfffe(实际写入的字节数);-1(错误)

头文件:io.h

write()写文件函数

原形:int write(int handle,char *buf,unsigned len)

用法:write(文件句柄,缓冲区地点,缓冲区字节长度<最大65534>);

#p#分页标题#e#

成果:将缓冲区的数据写入与handle相联的文件或设备中,handle是从creat、open、dup或dup2挪用中获得的文件句柄。对付磁盘或磁盘文件,写操纵从当前文件指针处开始,对付用O_APPEND选项打开的文件,写数据之前,文件指针指向EOF;对付设备,字节被直接传送到设备中;

返回值:实际写入的字节数(不包罗回车符),堕落时返回-1。

头文件:io.h

 

    关键字:

天才代写-代写联系方式