ITEEDU

五、诊断函数,所在函数库为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中取得

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,…])

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

int vcprintf(char *format,Valist param)

发送格式化字符串输出给控制台(显示器), 直接对控制台作操作,比如显示器即为直接写频方式显示, 参数从Valist param中取得

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

11

置分享冲突的重算计数;只对DOS

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

允许其它共享打开的文件