当前位置:天才代写 > tutorial > C语言/C++ 教程 > C语言函数简介

C语言函数简介

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

副标题#e#

分类函数,地址函数库为ctype.h

int isalpha(int ch) 若ch是字母(‘A’-‘Z’,’a’-‘z’) 返回非0值,不然返回0

int isalnum(int ch) 若ch是字母(‘A’-‘Z’,’a’-‘z’)或数字(‘0’-‘9’) 返回非0值,不然返回0

int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,不然返回0

int iscntrl(int ch) 若ch是作废字符(0x7F)或普通节制字符(0x00-0x1F)  返回非0值,不然返回0

int isdigit(int ch) 若ch是数字(‘0’-‘9’)返回非0值,不然返回0

int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,不然返回0

int islower(int ch) 若ch是小写字母(‘a’-‘z’)返回非0值,不然返回0

int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,不然返回0

int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,不然返回0

int isspace(int ch) 若ch是空格(‘ ‘),程度制表符(‘\t’),回车符(‘\r’),走纸换行(‘\f’),垂直制表符(‘\v’),换行符(‘\n’)返回非0值,不然返回0

int isupper(int ch) 若ch是大写字母(‘A’-‘Z’)返回非0值,不然返回0

int isxdigit(int ch) 若ch是16进制数(‘0’-‘9′,’A’-‘F’,’a’-‘f’)返回非0值,不然返回0

int tolower(int ch) 若ch是大写字母(‘A’-‘Z’)返回相应的小写字母(‘a’-‘z’)

int toupper(int ch) 若ch是小写字母(‘a’-‘z’)返回相应的大写字母(‘A’-‘Z’)

数学函数,地址函数库为math.h、stdlib.h、string.h、float.h

int abs(int i) 返回整型参数i的绝对值

double cabs(struct complex znum) 返回覆数znum的绝对值

double fabs(double x) 返回双精度参数x的绝对值

long labs(long n) 返回长整型参数n的绝对值

double exp(double x) 返回指数函数ex的值

double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中

double ldexp(double value,int exp); 返回value*2exp的值

double log(double x) 返回logex的值

double log10(double x) 返回log10x的值

double pow(double x,double y) 返回xy的值


#p#副标题#e#

double pow10(int p) 返回10p的值

double sqrt(double x) 返回+√x的值

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

double asin(double x) 返回x的横竖弦sin-1(x)值,x为弧度

double atan(double x) 返回x的横竖切tan-1(x)值,x为弧度

double atan2(double y,double x) 返回y/x的横竖切tan-1(x)值,y的x为弧度

double cos(double x) 返回x的余弦cos(x)值,x为弧度

double sin(double x) 返回x的正弦sin(x)值,x为弧度

double tan(double x) 返回x的正切tan(x)值,x为弧度

double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度

double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度

double tanh(double x) 返回x的双曲正切tanh(x)值,x为弧度

double hypot(double x,double y) 返回直角三角形斜边的长度(z),x和y为直角边的长度,z2=x2+y2

double ceil(double x) 返回不小于x的最小整数

double floor(double x) 返回不大于x的最大整数

void srand(unsigned seed) 初始化随机数产生器

int rand() 发生一个随机数并返回这个数

double poly(double x,int n,double c[])从参数发生一个多项式

double modf(double value,double *iptr)将双精度数value解析成尾数和阶

double fmod(double x,double y) 返回x/y的余数

double frexp(double value,int *eptr) 将双精度数value分成尾数和阶

double atof(char *nptr) 将字符串nptr转换成浮点数并返回这个浮点数

double atoi(char *nptr) 将字符串nptr转换成整数并返回这个整数

double atol(char *nptr) 将字符串nptr转换生长整数并返回这个整数

char *ecvt(double value,int ndigit,int *decpt,int *sign) 将浮点数value转换成字符串并返回该字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign) 将浮点数value转换成字符串并返回该字符串

char *gcvt(double value,int ndigit,char *buf) 将数value转换成字符串并存于buf中,并返回buf的指针

char *ultoa(unsigned long value,char *string,int radix) 将无标记整型数value转换成字符串并返回该字符串,radix为转换时所用基数

char *ltoa(long value,char *string,int radix) 将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数

char *itoa(int value,char *string,int radix) 将整数value转换成字符串存入string,radix为转换时所用基数

double atof(char *nptr) 将字符串nptr转换成双精度数,并返回这个数,错误返回0

int atoi(char *nptr) 将字符串nptr转换成整型数, 并返回这个数,错误返回0

long atol(char *nptr) 将字符串nptr转换生长整型数,并返回这个数,错误返回0

double strtod(char *str,char **endptr)将字符串str转换成双精度数,并返回这个数,

long strtol(char *str,char **endptr,int base)将字符串str转换生长整型数,并返回这个数,

int matherr(struct exception *e)用户修改数学错误返复书息函数(没有须要利用)

double _matherr(_mexcep why,char *fun,double *arg1p,double *arg2p,double retval) 用户修改数学错误返复书息函数(没有须要利用)

unsigned int _clear87() 排除浮点状态字并返回本来的浮点状态

void _fpreset() 从头初使化浮点数学措施包

unsigned int _status87() 返回浮点状态字

#p#副标题#e#

目次函数,地址函数库为dir.h、dos.h

int chdir(char *path) 使指定的目次path(如:"C:\\WPS")酿成当前的事情目次,乐成返回0

int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,乐成返回0 pathname为指定的目次名和文件名,如"C:\\WPS\\TXT"

ffblk为指定的生存文件信息的一个布局,界说如下:

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

┃struct ffblk ┃

┃{ ┃

┃ char ff_reserved[21]; /*DOS保存字*/┃

┃ char ff_attrib; /*文件属性*/ ┃

┃ int ff_ftime; /*文件时间*/ ┃

┃ int ff_fdate; /*文件日期*/ ┃

┃ long ff_fsize; /*文件长度*/ ┃

┃ char ff_name[13]; /*文件名*/ ┃

┃} ┃

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

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

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

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

┃FA_HIDDEN 埋没文件┃FA_DIREC 目次 ┃

┃FA_SYSTEM 系统文件┃FA_ARCH 档案 ┃

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

例:

struct ffblk ff;

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

int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,乐成返回0

#p#分页标题#e#

void fumerge(char *path,char *drive,char *dir,char *name,char *ext)此函数通过盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等),文件名name(TC、WPS等),扩展名ext(.EXE、.COM等)构成一个文件名存与path中.

int fnsplit(char *path,char *drive,char *dir,char *name,char *ext)此函数将文件名path解析成盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等),文件名name(TC、WPS等),扩展名ext(.EXE、.COM等),并别离存入相应的变量中.

#p#副标题#e#

int getcurdir(int drive,char *direc) 此函数返回指定驱动器的当前事情目次名称

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

direc 生存指定驱动器当前事情路径的变量 乐成返回0

char *getcwd(char *buf,iint n) 此函数取当前事情目次并存入buf中,直到n个字节长为为止.错误返回NULL

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

int setdisk(int drive) 配置要利用的驱动器drive(0=A,1=B,2=C等),返回可利用驱动器总数

int mkdir(char *pathname) 成立一个新的目次pathname,乐成返回0

int rmdir(char *pathname) 删除一个目次pathname,乐成返回0

char *mktemp(char *template) 结构一个当前目次上没有的文件名并存于template中

char *searchpath(char *pathname) 操作MSDOS找出文件filename地址路径,,此函数利用DOS的PATH变量,未找到文件返回NULL

历程函数,地址函数库为stdlib.h、process.h

void abort() 此函数通过挪用具有出口代码3的_exit写一个终止信息于stderr,并异常终止措施。无返回值

int exec…装入和运行其它措施

int execl( char *pathname,char *arg0,char *arg1,…,char *argn,NULL)

int execle( char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int execlp( char *pathname,char *arg0,char *arg1,…,NULL)

int execlpe(char *pathname,char *arg0,char *arg1,…,NULL,char *envp[])

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

int execve( char *pathname,char *argv[],char *envp[])

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

int execvpe(char *pathname,char *argv[],char *envp[])

exec函数族装入并运行措施pathname,并将参数arg0(arg1,arg2,argv[],envp[])通报给子措施,堕落返回-1

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

有后缀 p时,函数可以操作DOS的PATH变量查找子措施文件。

l时,函数中被通报的参数个数牢靠。

v时,函数中被通报的参数个数不牢靠。

e时,函数通报指定参数envp,答允改变子历程的情况,

无后缀e时,子历程利用当前措施的情况。

void _exit(int status)终止当前措施,但不清理现场

#p#副标题#e#

void exit(int status) 终止当前措施,封锁所有文件,写缓冲区的输出(期待输出),并挪用任何寄存器的"出口函数",无返回值

int spawn…运行子措施

int spawnl( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL)

int spawnle( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int spawnlp( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL)

int spawnlpe(int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int spawnv( int mode,char *pathname,char *argv[])

int spawnve( int mode,char *pathname,char *argv[],char *envp[])

int spawnvp( int mode,char *pathname,char *argv[])

int spawnvpe(int mode,char *pathname,char *argv[],char *envp[])

spawn函数族在mode模式下运行子措施pathname,并将参数arg0(arg1,arg2,argv[],envp[])通报给子措施.堕落返回-1

mode为运行模式

mode为 P_WAIT 暗示在子措施运行完后返回本措施

P_NOWAIT 暗示在子措施运行时同时运行本措施(不行用)

P_OVERLAY暗示在本措施退出后运行子措施

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

有后缀 p时, 函数操作DOS的PATH查找子措施文件

l时, 函数通报的参数个数牢靠.

v时, 函数通报的参数个数不牢靠.

e时, 指定参数envp可以通报给子措施,答允改变子措施运行情况.

当无后缀e时,子措施利用本措施的情况.

int system(char *command) 将MSDOS呼吁command通报给DOS执行

转换子措施,函数库为math.h、stdlib.h、ctype.h、float.h

char *ecvt(double value,int ndigit,int *decpt,int *sign)

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

char *fcvt(double value,int ndigit,int *decpt,int *sign)

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

char *gcvt(double value,int ndigit,char *buf)

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

char *ultoa(unsigned long value,char *string,int radix)

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

char *ltoa(long value,char *string,int radix)

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

char *itoa(int value,char *string,int radix)

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

double atof(char *nptr) 将字符串nptr转换成双精度数,并返回这个数,错误返回0

int atoi(char *nptr) 将字符串nptr转换成整型数, 并返回这个数,错误返回0

long atol(char *nptr) 将字符串nptr转换生长整型数,并返回这个数,错误返回0

double strtod(char *str,char **endptr)将字符串str转换成双精度数,并返回这个数,

long strtol(char *str,char **endptr,int base)将字符串str转换生长整型数,并返回这个数,

int toascii(int c) 返回c相应的ASCII

int tolower(int ch) 若ch是大写字母(‘A’-‘Z’)返回相应的小写字母(‘a’-‘z’)

int _tolower(int ch) 返回ch相应的小写字母(‘a’-‘z’)

int toupper(int ch) 若ch是小写字母(‘a’-‘z’)返回相应的大写字母(‘A’-‘Z’)

int _toupper(int ch) 返回ch相应的大写字母(‘A’-‘Z’)

#p#副标题#e#

诊断函数,地址函数库为assert.h、math.h

void assert(int test) 一个扩展成if语句那样的宏,假如test测试失败,就显示一个信息并异常终止措施,无返回值

void perror(char *string) 本函数将显示最近一次的错误信息,名目如下:字符串string:错误信息

char *strerror(char *str) 本函数返回最近一次的错误信息,名目如下:字符串str:错误信息

int matherr(struct exception *e) 用户修改数学错误返复书息函数(没有须要利用)

double _matherr(_mexcep why,char *fun,double *arg1p,double *arg2p,double retval)

用户修改数学错误返复书息函数(没有须要利用)

输入输出子措施,函数库为io.h、conio.h、stat.h、dos.h、stdio.h、signal.h

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

int fgetchar() 从节制台(键盘)读一个字符,显示在屏幕上

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

int putch() 向节制台(键盘)写一个字符

int getchar() 从节制台(键盘)读一个字符,显示在屏幕上

int putchar() 向节制台(键盘)写一个字符

int getche() 从节制台(键盘)读一个字符,显示在屏幕上

int ungetch(int c) 把字符c退回给节制台(键盘)

char *cgets(char *string) 从节制台(键盘)读入字符串存于string中

int scanf(char *format[,argument…])从节制台读入一个字符串,别离对各个参数举办赋值,利用BIOS举办输出

int vscanf(char *format,Valist param)从节制台读入一个字符串,别离对各个参数举办赋值,利用BIOS举办输出,参数从Valist param中取得

#p#分页标题#e#

int cscanf(char *format[,argument…])从节制台读入一个字符串,别离对各个参数举办赋值,直接对节制台作操纵,好比显示器在显示时字符时即为直接写频方法显示

int sscanf(char *string,char *format[,argument,…])通过字符串string,别离对各个参数举办赋值

int vsscanf(char *string,char *format,Vlist param)通过字符串string,别离对各个参数举办赋值,参数从Vlist param中取得

int puts(char *string) 发关一个字符串string给节制台(显示器),利用BIOS举办输出

void cputs(char *string) 发送一个字符串string给节制台(显示器),直接对节制台作操纵,好比显示器即为直接写频方法显示

int printf(char *format[,argument,…]) 发送名目化字符串输出给节制台(显示器)利用BIOS举办输出

int vprintf(char *format,Valist param) 发送名目化字符串输出给节制台(显示器)利用BIOS举办输出,参数从Valist param中取得

int cprintf(char *format[,argument,…]) 发送名目化字符串输出给节制台(显示器),直接对节制台作操纵,好比显示器即为直接写频方法显示

#p#分页标题#e#

int vcprintf(char *format,Valist param)发送名目化字符串输出给节制台(显示器),直接对节制台作操纵,好比显示器即为直接写频方法显示,参数从Valist param中取得

#p#副标题#e#

int sprintf(char *string,char *format[,argument,…])将字符串string的内容从头写为名目化后的字符串

int vsprintf(char *string,char *format,Valist param)将字符串string的内容从头写为名目化后的字符串,参数从Valist param中取得

int rename(char *oldname,char *newname)将文件oldname的名称改为newname

int ioctl(int handle,int cmd[,int *argdx,int argcx])本函数是用来节制输入/输出设备的,请见下表:

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

│cmd值 │成果 │

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

│ 0 │取出设备信息 │

│ 1 │配置设备信息 │

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

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

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

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

│ 6 │取输入状态 │

│ 7 │取输出状态 │

│ 8 │测试可换性;只对付DOS 3.x │

│ 11 │置分享斗嘴的重算计数;只对DOS 3.x │

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

int (*ssignal(int sig,int(*action)())()执行软件信号(没须要利用)

int gsignal(int sig) 执行软件信号(没须要利用)

int _open(char *pathname,int access)为读或写打开一个文件,

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

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

│access值 │意义 │

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

│O_RDONLY │读文件 │

│O_WRONLY │写文件 │

│O_RDWR │即读也写 │

│O_NOINHERIT │若文件没有通报给子措施,则被包括 │

│O_DENYALL │只答允当前处理惩罚必需存取的文件 │

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

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

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

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

int open(char *pathname,int access[,int permiss])为读或写打开一个文件,

按后按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 │此符号可用于显示地给出以文本方法打开文件│

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

#p#副标题#e#

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

S_IWRITE答允写 S_IREAD答允读 S_IREAD|S_IWRITE答允读、写

int creat(char *filename,int permiss) 成立一个新文件filename,并设定读写性。permiss为文件读写性,可觉得以下值S_IWRITE答允写 S_IREAD答允读 S_IREAD|S_IWRITE答允读、写

int _creat(char *filename,int attrib) 成立一个新文件filename,并设定文件属性。attrib为文件属性,可觉得以下值FA_RDONLY只读 FA_HIDDEN埋没 FA_SYSTEM系统

int creatnew(char *filenamt,int attrib) 成立一个新文件filename,并设定文件属性。attrib为文件属性,可觉得以下值FA_RDONLY只读 FA_HIDDEN埋没 FA_SYSTEM系统

int creattemp(char *filenamt,int attrib) 成立一个新文件filename,并设定文件属性。attrib为文件属性,可觉得以下值FA_RDONLY只读 FA_HIDDEN埋没 FA_SYSTEM系统

int read(int handle,void *buf,int nbyte)从文件号为handle的文件中读nbyte个字符存入buf中

int _read(int handle,void *buf,int nbyte)从文件号为handle的文件中读nbyte个字符存入buf中,直接挪用MSDOS举办操纵.

int write(int handle,void *buf,int nbyte)将buf中的nbyte个字符写入文件号为handle的文件中

int _write(int handle,void *buf,int nbyte)将buf中的nbyte个字符写入文件号为handle的文件中

int dup(int handle) 复制一个文件处理惩罚指针handle,返回这个指针

int dup2(int handle,int newhandle) 复制一个文件处理惩罚指针handle到newhandle

int eof(int *handle)查抄文件是否竣事,竣事返回1,不然返回0

long filelength(int handle) 返回文件长度,handle为文件号

int setmode(int handle,unsigned mode)本函数用来设定文件号为handle的文件的打开方法

int getftime(int handle,struct ftime *ftime) 读取文件号为handle的文件的时间,并将文件时间存于ftime布局中,乐成返回0,ftime布局如下:

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

│struct ftime │

│{ │

│ unsigned ft_tsec:5; /*秒*/ │

│ unsigned ft_min:6; /*分*/ │

│ unsigned ft_hour:5; /*时*/ │

│ unsigned ft_day:5; /*日*/ │

│ unsigned ft_month:4;/*月*/ │

│ unsigned ft_year:1; /*年-1980*/ │

│} │

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

int setftime(int handle,struct ftime *ftime) 重写文件号为handle的文件时间,

新时间在布局ftime中.乐成返回0.布局ftime如下:

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

│struct ftime │

│{ │

│ unsigned ft_tsec:5; /*秒*/ │

│ unsigned ft_min:6; /*分*/ │

│ unsigned ft_hour:5; /*时*/ │

│ unsigned ft_day:5; /*日*/ │

│ unsigned ft_month:4;/*月*/ │

│ unsigned ft_year:1; /*年-1980*/ │

│} │

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

#p#分页标题#e#

long lseek(int handle,long offset,int fromwhere) 本函数将文件号为handle的文件的指针移到fromwhere后的第offset个字节处.SEEK_SET 文件开关 SEEK_CUR 当前位置 SEEK_END 文件尾

long tell(int handle) 本函数返回文件号为handle的文件指针,以字节暗示

int isatty(int handle)本函数用来取设备handle的范例

int lock(int handle,long offset,long length) 对文件共享作封闭

int unlock(int handle,long offset,long length) 打开对文件共享的封闭

int close(int handle) 封锁handle所暗示的文件处理惩罚,handle是从_creat、creat、

creatnew、creattemp、dup、dup2、_open、open中的一个处挪用得到的文件处理惩罚乐成返回0不然返回-1,可用于UNIX系统

int _close(int handle) 封锁handle所暗示的文件处理惩罚,handle是从_creat、creat、creatnew、creattemp、dup、dup2、_open、open中的一个处挪用得到的文件处理惩罚乐成返回0不然返回-1,只能用于MSDOS系统

FILE *fopen(char *filename,char *type) 打开一个文件filename,打开方法为type,并返回这个文件指针,type可为以下字符串加上后缀

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

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

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

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

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

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

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

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

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

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

#p#副标题#e#

可加的后缀为t、b。加b暗示文件以二进制形式举办操纵,t没须要利用

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

│#include │

│main() │

│{ │

│ FILE *fp; │

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

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

FILE *fdopen(int ahndle,char *type)

FILE *freopen(char *filename,char *type,FILE *stream)

int getc(FILE *stream) 从流stream中读一个字符,并返回这个字符

int putc(int ch,FILE *stream)向流stream写入一个字符ch

int getw(FILE *stream) 从流stream读入一个整数,错误返回EOF

int putw(int w,FILE *stream)向流stream写入一个整数

int ungetc(char c,FILE *stream) 把字符c退回给流stream,下一次读进的字符将是c

int fgetc(FILE *stream) 从流stream处读一个字符,并返回这个字符

int fputc(int ch,FILE *stream) 将字符ch写入流stream中

char *fgets(char *string,int n,FILE *stream) 从流stream中读n个字符存入string中

int fputs(char *string,FILE *stream) 将字符串string写入流stream中

int fread(void *ptr,int size,int nitems,FILE *stream) 从流stream中读入nitems个长度为size的字符串存入ptr中

int fwrite(void *ptr,int size,int nitems,FILE *stream) 向流stream中写入nitems个长度为size的字符串,字符串在ptr中

int fscanf(FILE *stream,char *format[,argument,…]) 以名目化形式从流stream中读入一个字符串

int vfscanf(FILE *stream,char *format,Valist param) 以名目化形式从流stream中读入一个字符串,参数从Valist param中取得

int fprintf(FILE *stream,char *format[,argument,…]) 以名目化形式将一个字符串写给指定的流stream

int vfprintf(FILE *stream,char *format,Valist param) 以名目化形式将一个字符串写给指定的流stream,参数从Valist param中取得

#p#分页标题#e#

int fseek(FILE *stream,long offset,int fromwhere) 函数把文件指针移到fromwhere所指位置的向后offset个字节处,fromwhere可觉得以下值:SEEK_SET 文件开关 SEEK_CUR 当前位置 SEEK_END 文件尾

long ftell(FILE *stream) 函数返回定位在stream中的当前文件指针位置,以字节暗示

int rewind(FILE *stream) 将当前文件指针stream移到文件开头

#p#副标题#e#

int feof(FILE *stream) 检测流stream上的文件指针是否在竣事位置

int fileno(FILE *stream) 取流stream上的文件处理惩罚,并返回文件处理惩罚

int ferror(FILE *stream) 检测流stream上是否有读写错误,如有错误就返回1

void clearerr(FILE *stream) 排除流stream上的读写错误

void setbuf(FILE *stream,char *buf) 给流stream指定一个缓冲区buf

void setvbuf(FILE *stream,char *buf,int type,unsigned size)给流stream指定一个缓冲区buf,巨细为size,范例为type,type的值见下表

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

│type值│意义 │

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

│_IOFBF│文件是完全缓冲区,当缓冲区是空时,下一个输入操纵将诡计填满整个缓│

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

│_IOLBF│文件是行缓冲区.当缓冲区为空时,下一个输入操纵将仍然诡计填整个缓│

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

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

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

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

int fclose(FILE *stream) 封锁一个流,可以是文件或设备(譬喻LPT1)

int fcloseall() 封锁所有除stdin或stdout外的流

int fflush(FILE *stream) 封锁一个流,并对缓冲区作处理惩罚处理惩罚即对读的流,将流内内容读入缓冲区; 对写的流,将缓冲区内内容写入流。乐成返回0

int fflushall() 封锁所有流,并对流各自的缓冲区作处理惩罚处理惩罚即对读的流,将流内内容读入缓冲区;对写的流,将缓冲区内内容写入流。乐成返回0

int access(char *filename,int amode) 本函数查抄文件filename并返回文件的属性,函数将属性存于amode中,amode由以下位的组合组成

06可以读、写 04可以读 02可以写 01执行(忽略的) 00文件存在假如filename是一个目次,函数将只确定目次是否存在函数执行乐成返回0,不然返回-1

int chmod(char *filename,int permiss) 本函数用于设定文件filename的属性

permiss可觉得以下值

S_IWRITE答允写 S_IREAD答允读 S_IREAD|S_IWRITE答允读、写

int _chmod(char *filename,int func[,int attrib]);

本函数用于读取或设定文件filename的属性,当func=0时,函数返回文件的属性;当func=1时,函数设定文件的属性 若为设定文件属性,attrib可觉得下列常数之一 FA_RDONLY只读 FA_HIDDEN埋没 FA_SYSTEM系统

#p#副标题#e#

接口子措施,地址函数库为:dos.h、bios.h

unsigned sleep(unsigned seconds)暂停seconds微秒(百分之一秒)

int unlink(char *filename)删除文件filename

unsigned FP_OFF(void far *farptr)本函数用来取远指针farptr的偏移量

unsigned FP_SEG(void far *farptr)本函数用来没置远指针farptr的段值

void far *MK_FP(unsigned seg,unsigned off)按照段seg和偏移量off结构一个far指针

unsigned getpsp()取措施段前缀的段地点,并返回这个地点

char *parsfnm(char *cmdline,struct fcb *fcbptr,int option)函数阐明一个字符串,凡是,对一个文件名来说,是由cmdline所指的一个呼吁行.

文件名是放入一个FCB中作为一个驱动器,文件名和扩展名.FCB是由fcbptr所指定的.option参数是DOS阐明系统挪用时,AL文本的值.

#p#分页标题#e#

int absread(int drive,int nsects,int sectno,void *buffer)本函数成果为读特定的磁盘扇区,drive为驱动器号(0=A,1=B等),nsects为要读的扇区数,sectno为开始的逻辑扇区号,buffer为生存所读数据的生存空间

int abswrite(int drive,int nsects,int sectno,void *buffer)本函数成果为写特定的磁盘扇区,drive为驱动器号(0=A,1=B等),nsects为要写的扇区数,sectno为开始的逻辑扇区号,buffer为生存所写数据的地址空间

void getdfree(int drive,struct dfree *dfreep)本函数用来取磁盘的自由空间,drive为磁盘号(0=当前,1=A等).函数将磁盘特性的由dfreep指向的dfree布局中.

dfree布局如下:

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

│struct dfree │

│{ │

│ unsigned df_avail; /*有用簇个数*/ │

│ unsigned df_total; /*总共簇个数*/ │

│ unsigned df_bsec; /*每个扇区字节数*/│

│ unsigned df_sclus; /*每个簇扇区数*/ │

│} │

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

char far *getdta() 取磁盘转换地点DTA

void setdta(char far *dta)配置磁盘转换地点DTA

#p#副标题#e#

void getfat(int drive,fatinfo *fatblkp)

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

并存入布局fatblkp中,布局如下:

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

│struct fatinfo │

│{ │

│ char fi_sclus; /*每个簇扇区数*/ │

│ char fi_fatid; /*文件分派表字节数*/│

│ int fi_nclus; /*簇的数目*/ │

│ int fi_bysec; /*每个扇区字节数*/ │

│} │

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

void getfatd(struct fatinfo *fatblkp) 本函数返回当前驱动器的文件分派表信息,

并存入布局fatblkp中,布局如下:

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

│struct fatinfo │

│{ │

│ char fi_sclus; /*每个簇扇区数*/ │

│ char fi_fatid; /*文件分派表字节数*/│

│ int fi_nclus; /*簇的数目*/ │

│ int fi_bysec; /*每个扇区字节数*/ │

│} │

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

int bdos(int dosfun,unsigned dosdx,unsigned dosal)本函数对MSDOS系统举办挪用,dosdx为寄存器dx的值,dosal为寄存器al的值,dosfun为成果号

int bdosptr(int dosfun,void *argument,unsiigned dosal)本函数对MSDOS系统举办挪用,argument为寄存器dx的值,dosal为寄存器al的值,dosfun为成果号

int int86(int intr_num,union REGS *inregs,union REGS *outregs)执行intr_num号间断,用户界说的寄存器值存于布局inregs中,执行完后将返回的寄存器值存于布局outregs中.

int int86x(int intr_num,union REGS *inregs,union REGS *outregs,struct SREGS *segregs)执行intr_num号间断,用户界说的寄存器值存于

布局inregs中和布局segregs中,执行完后将返回的寄存器值存于布局outregs中.

int intdos(union REGS *inregs,union REGS *outregs)本函数执行DOS间断0x21来挪用一个指定的DOS函数,用户界说的寄存器值

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

int intdosx(union REGS *inregs,union REGS *outregs,struct SREGS *segregs)

本函数执行DOS间断0x21来挪用一个指定的DOS函数,用户界说的寄存器值存于布局inregs和segregs中,执行完后函数将返回的寄存器值存于布局outregs中

#p#副标题#e#

void intr(int intr_num,struct REGPACK *preg)

本函数中一个备用的8086软件间断接口它能发生一个由参数intr_num指定的8086软件间断.函数在执行软件间断前,从布局preg复制用户界说的各寄存器值到各个寄存器.软件间断完成后,函数将当前各个寄存器的值复制到布局preg中.参数如下:

intr_num 被执行的间断号

preg为生存用户界说的寄存器值的布局,布局如下

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

│struct REGPACK │

│{ │

│ unsigned r_ax,r_bx,r_cx,r_dx; │

│ unsigned r_bp,r_si,r_di,r_ds,r_es,r_flags; │

│} │

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

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

void keep(int status,int size)以status状态返回MSDOS,但措施仍保存于内存中,所占用空间由size抉择.

void ctrlbrk(int (*fptr)()) 配置间断后的对间断的处理惩罚措施.

void disable() 克制产生间断

void enable() 答允产生间断

void geninterrupt(int intr_num)执行由intr_num所指定的软件间断

void interrupt(* getvect(int intr_num))() 返回间断号为intr_num的间断处理惩罚措施,譬喻: old_int_10h=getvect(0x10);

void setvect(int intr_num,void interrupt(* isr)()) 配置间断号为intr_num的间断处理惩罚措施为isr,譬喻: setvect(0x10,new_int_10h);

void harderr(int (*fptr)()) 界说一个硬件错误处理惩罚措施,每当呈现错误时就挪用fptr所指的措施

void hardresume(int rescode)硬件错误处理惩罚函数

void hardretn(int errcode) 硬件错误处理惩罚函数

int inport(int prot) 从指定的输入端口读入一个字,并返回这个字

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

void outport(int port,int word) 将字word写入指定的输出端口port

void outportb(int port,char byte)将字节byte写入指定的输出端口port

int peek(int segment,unsigned offset) 函数返回segment:offset处的一个字

char peekb(int segment,unsigned offset)函数返回segment:offset处的一个字节

void poke(int segment,int offset,char value) 将字value写到segment:offset处

void pokeb(int segment,int offset,int value) 将字节value写到segment:offset处

int randbrd(struct fcb *fcbptr,int reccnt)函数操作打开fcbptr所指的FCB读reccnt个记录.

int randbwr(struct fcb *fcbptr,int reccnt)函数将fcbptr所指的FCB中的reccnt个记录写到磁盘上

void segread(struct SREGS *segtbl)函数把段寄存器的当前值放进布局segtbl中

int getverify() 取检讨符号的当前状态(0=检讨封锁,1=检讨打开)

void setverify(int value)配置当前检讨状态,value为0暗示封锁检讨,为1暗示打开检讨

#p#副标题#e#

int getcbrk()本函数返回节制间断检测的当前配置

int setcbrk(int value)本函数用来配置节制间断检测为接通或断开当value=0时,为断开检测.当value=1时,为接开检测

int dosexterr(struct DOSERR *eblkp)取扩展错误.在DOS呈现错误后,此函数将扩充的

错误信息填入eblkp所指的DOSERR布局中.该布局界说如下:

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

│struct DOSERR │

│{ │

│ int exterror;/*扩展错误*/ │

│ char class; /*错误范例*/ │

│ char action; /*方法*/ │

│ char locus; /*错误场合*/ │

│} │

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

int bioscom(int cmd,char type,int port) 本函数认真对数据的通讯事情,

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波特 │ │

│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位 δ排除发送

int biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer)

本函数用来对驱动器作必然的操纵,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给出。扇区号由nsects给出。

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 节制器内部诊

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

0x00 操纵乐成

0x01 坏的呼吁

0x02 地点标志找不到

0x04 记录找不到

0x05 重置失败

0x07 驱动参数勾当失败

0x09 诡计DMA颠末64K边界

0x0B 查抄坏的磁盘标志

0x10 坏的ECC在磁盘上读

0x11 ECC校正的数据错误(留意它不是错误)

0x20 节制器失效

0x40 查找失败

0x80 响应的毗连失败

0xBB 呈现无界说错误

0xFF 读出操纵失败

#p#副标题#e#

int biodquip() 查抄设备,函数返回一字节,该字节每一位暗示一个信息,如下:

第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位 从软磁盘引导

int bioskey(int cmd)本函数用来执行各类键盘操纵,由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未按下 │

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

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

#p#副标题#e#

int biosmemory()返回内存巨细,以K为单元.

int biosprint(int cmd,int byte,int port)节制打印机的输入/输出.

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

cmd可觉得以下值:

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

1 打印机端口初始化

2 读打印机状态

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

0x01 设备时间超时

0x08 输入/输堕落误

0x10 选择的

0x20 走纸

0x40 承认

0x80 不繁忙

int biostime(int cmd,long newtime)计时器节制,cmd为成果号,可为以下值

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

1 将计时器设为新值newtime

struct country *country(int countrycmode,struct country *countryp)

本函数用来节制某一国度的相关信息,如日期,时间,钱币等.

若countryp=-1时,当前的国度置为countrycode值(必需为非0).不然,由countryp

所指向的country布局用下列的国度相关信息填充:

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

布局country界说如下:

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

│struct country │

│{ │

│ int co_date; /*日期名目*/ │

│ char co_curr[5]; /*钱币标记*/ │

│ char co_thsep[2]; /*数字脱离符*/ │

│ char co_desep[2]; /*小数点*/ │

│ char co_dtsep[2]; /*日期脱离符*/ │

│ char co_tmsep[2]; /*时间脱离符*/ │

│ char co_currstyle; /*钱币形式*/ │

│ char co_digits; /*有效数字*/ │

│ int (far *co_case)(); /*事件处理惩罚函数*/ │

│ char co_dasep; /*数据脱离符*/ │

│ char co_fill[10]; /*增补字符*/ │

│} │

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

co_date的值所代表的日期名目是:

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

co_currstrle的值所代表的钱币显示方法是

0 钱币标记在数值前,中间无空格

1 钱币标记在数值后,中间无空格

2 钱币标记在数值前,中间有空格

3 钱币标记在数值后,中间有空格

操纵函数,地址函数库为string.h、mem.h

mem…操纵存贮数组

void *memccpy(void *destin,void *source,unsigned char ch,unsigned n)

void *memchr(void *s,char ch,unsigned n)

void *memcmp(void *s1,void *s2,unsigned n)

int memicmp(void *s1,void *s2,unsigned n)

void *memmove(void *destin,void *source,unsigned n)

void *memcpy(void *destin,void *source,unsigned n)

void *memset(void *s,char ch,unsigned n)

这些函数,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,就返回NULL.

#p#副标题#e#

void movedata(int segsrc,int offsrc,int segdest,int offdest,unsigned numbytes)

本函数将源地点(segsrc:offsrc)处的numbytes个字节复制到方针地点(segdest:offdest)

#p#分页标题#e#

void movemem(void *source,void *destin,unsigned len)本函数从source处复制一块长len字节的数据到destin.若源地点和方针地点字符串重迭,则选择复制偏向,以便正确的复制数据.

void setmem(void *addr,int len,char value)本函数把addr所指的块的第一个字节置于字节value中.

str…字符串操纵函数

char stpcpy(char *dest,const char *src)将字符串src复制到dest

char strcat(char *dest,const char *src)将字符串src添加到dest末端

char strchr(const char *s,int c)检索并返回字符c在字符串s中第一次呈现的位置

int strcmp(const char *s1,const char *s2)较量字符串s1与s2的巨细,并返回s1-s2

char strcpy(char *dest,const char *src)将字符串src复制到dest

size_t strcspn(const char *s1,const char *s2)扫描s1,返回在s1中有,在s2中也有的字符个数

char strdup(const char *s)将字符串s复制到最近成立的单位

int stricmp(const char *s1,const char *s2)较量字符串s1和s2,并返回s1-s2

size_t strlen(const char *s)返回字符串s的长度

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

char strncat(char *dest,const char *src,size_t maxlen)将字符串src中最多maxlen个字符复制到字符串dest中

int strncmp(const char *s1,const char *s2,size_t maxlen)较量字符串s1与s2中的前maxlen个字符

char strncpy(char *dest,const char *src,size_t maxlen)复制src中的前maxlen个字符到dest中

int strnicmp(const char *s1,const char *s2,size_t maxlen)较量字符串s1与s2中的前maxlen个字符

char strnset(char *s,int ch,size_t n)将字符串s的前n个字符置于ch中

char strpbrk(const char *s1,const char *s2)扫描字符串s1,并返回在s1和s2中均有的字符个数

char strrchr(const char *s,int c)扫描最后呈现一个给定字符c的一个字符串s

char strrev(char *s)将字符串s中的字符全部颠倒顺序从头分列,并返回分列后的字符串

char strset(char *s,int ch)将一个字符串s中的所有字符置于一个给定的字符ch

size_t strspn(const char *s1,const char *s2)扫描字符串s1,并返回在s1和s2中均有的字符个数

char strstr(const char *s1,const char *s2)扫描字符串s2,并返回第一次呈现s1的位置

char strtok(char *s1,const char *s2)检索字符串s1,该字符串s1是由字符串s2中界说的定界符所脱离

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

存贮分派子措施,地址函数库为dos.h、alloc.h、malloc.h、stdlib.h、process.h

#p#副标题#e#

int allocmem(unsigned size,unsigned *seg)操作DOS分派空闲的内存,

size为分派内存巨细,seg为分派后的内存指针

int freemem(unsigned seg)释放先前由allocmem分派的内存,seg为指定的内存指针

int setblock(int seg,int newsize)本函数用来修改所分派的内存长度,seg为已分派内存的内存指针,newsize为新的长度

int brk(void *endds)本函数用来改变分派给挪用措施的数据段的空间数量,新的空间竣事地点为endds

char *sbrk(int incr)本函数用来增加分派给挪用措施的数据段的空间数量,增加incr个字节的空间

unsigned long coreleft() 本函数返回未用的存储区的长度,以字节为单元

void *calloc(unsigned nelem,unsigned elsize)分派nelem个长度为elsize的内存空间并返回所分派内存的指针

void *malloc(unsigned size)分派size个字节的内存空间,并返回所分派内存的指针

void free(void *ptr)释放先前所分派的内存,所要释放的内存的指针为ptr

void *realloc(void *ptr,unsigned newsize)改变已分派内存的巨细,ptr为已分派有内存区域的指针,newsize为新的长度,返回分派好的内存指针.

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

void far *farcalloc(unsigned long units,unsigned long unitsz)从远堆分派units个长度为unitsz的内存空间,并返回所分派内存的指针

void *farmalloc(unsigned long size)分派size个字节的内存空间,并返回分派的内存指针

void farfree(void far *block)释放先前从远堆分派的内存空间,所要释放的远堆内存的指针为block

void far *farrealloc(void far *block,unsigned long newsize)改变已分派的远堆内存的巨细,block为已分派有内存区域的指针,newzie为新的长度,返回分派好的内存指针

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

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

总时间日期贮存布局tm

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

│struct tm │

│{ │

│ int tm_sec; /*秒,0-59*/ │

│ int tm_min; /*分,0-59*/ │

│ int tm_hour; /*时,0-23*/ │

│ int tm_mday; /*天数,1-31*/ │

│ int tm_mon; /*月数,0-11*/ │

│ int tm_year; /*自1900的年纪*/ │

│ int tm_wday; /*自礼拜日的天数0-6*/ │

│ int tm_yday; /*自1月1日起的天数,0-365*/ │

│ int tm_isdst; /*是否回收夏时制,回收为正数*/│

│} │

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

#p#副标题#e#

日期贮存布局date

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

│struct date │

│{ │

│ int da_year; /*自1900的年纪*/│

│ char da_day; /*天数*/ │

│ char da_mon; /*月数 1=Jan*/ │

│} │

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

时间贮存布局time

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

│struct time │

│{ │

│ unsigned char ti_min; /*分钟*/│

│ unsigned char ti_hour; /*小时*/│

│ unsigned char ti_hund; │

│ unsigned char ti_sec; /*秒*/ │

│ │

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

char *ctime(long *clock)本函数把clock所指的时间(如由函数time返回的时间)转换成下列名目标

字符串:Mon Nov 21 11:31:54 1983\n\0

char *asctime(struct tm *tm)本函数把指定的tm布局类的时间转换成下列名目标字符串:

Mon Nov 21 11:31:54 1983\n\0

double difftime(time_t time2,time_t time1)计较布局time2和time1之间的时间差距(以秒为单元)

struct tm *gmtime(long *clock)本函数把clock所指的时间(如由函数time返回的时间)转换成格林威治时间,并以tm布局形式返回

struct tm *localtime(long *clock)本函数把clock所指的时间(如函数time返回的时间)转换本钱地尺度时间,并以tm布局形式返回

void tzset()本函数提供了对UNIX操纵系统的兼容性

long dostounix(struct date *dateptr,struct time *timeptr)本函数将dateptr所指的日期,timeptr所指的时间转换成UNIX名目,并返回

自格林威治时间1970年1月1日破晓起到此刻的秒数

#p#分页标题#e#

void unixtodos(long utime,struct date *dateptr,struct time *timeptr)本函数将自格林威治时间1970年1月1日破晓起到此刻的秒数utime转换成DOS名目并生存于用户所指的布局dateptr和timeptr中

void getdate(struct date *dateblk)本函数将计较机内的日期写入布局dateblk中以供用户利用

void setdate(struct date *dateblk)本函数将计较机内的日期改成由布局dateblk所指定的日期

void gettime(struct time *timep)本函数将计较机内的时间写入布局timep中,以供用户利用

void settime(struct time *timep)本函数将计较机内的时间改为由布局timep所指的时间

long time(long *tloc)本函数给出自格林威治时间1970年1月1日破晓至此刻所颠末的秒数,并将该值存于tloc所指的单位中.

int stime(long *tp)本函数将tp所指的时间(譬喻由time所返回的时间)写入计较机中.

 

    关键字:

天才代写-代写联系方式