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)终止当前程序,但不清理现场
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')
诊断函数,所在函数库为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 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 │此标志可用于显示地给出以文本方式打开文件│ └────┴────────────────────┘ 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; /*日*/ │