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
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等),并分别存入相应的变量中.
int getcurdir(int drive,char *direc)
此函数返回指定驱动器的当前工作目录名称。成功返回0
drive 指定的驱动器(0=当前,1=A,2=B,3=C等)
direc 保存指定驱动器当前工作路径的变量
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
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) 终止当前程序,但不清理现场
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