??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品18,亚洲精品久久久www,日韩中文久久http://www.shnenglu.com/horsetail/category/3491.html花儿,M有谢的时?/description>zh-cnTue, 20 May 2008 23:21:18 GMTTue, 20 May 2008 23:21:18 GMT60C/C++ 头文件一?/title><link>http://www.shnenglu.com/horsetail/articles/18346.html</link><dc:creator>[HORSETAIL]</dc:creator><author>[HORSETAIL]</author><pubDate>Sun, 04 Feb 2007 16:27:00 GMT</pubDate><guid>http://www.shnenglu.com/horsetail/articles/18346.html</guid><wfw:comment>http://www.shnenglu.com/horsetail/comments/18346.html</wfw:comment><comments>http://www.shnenglu.com/horsetail/articles/18346.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/horsetail/comments/commentRss/18346.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/horsetail/services/trackbacks/18346.html</trackback:ping><description><![CDATA[ <p>C/C++ 头文件一?/p> <p>C、传l?C++Q?/p> <p>#include <assert.h>    //讑֮插入?br />#include <ctype.h>     //字符处理<br />#include <errno.h>     //定义错误?br />#include <float.h>     //点数处?br />#include <fstream.h>    //文g输入Q输?br />#include <iomanip.h>    //参数化输入/输出<br />#include <iostream.h>   //数据输入/输出<br />#include <limits.h>    //定义各种数据cd最值常?br />#include <locale.h>    //定义本地化函?br />#include <math.h>     //定义数学函数<br />#include <stdio.h>     //定义输入Q输出函?br />#include <stdlib.h>    //定义杂项函数及内存分配函?br />#include <string.h>    //字符串处?br />#include <strstrea.h>   //Z数组的输入/输出<br />#include <time.h>     //定义关于旉的函?br />#include <wchar.h>     //宽字W处理及输入Q输?br />#include <wctype.h>    //宽字W掷?br /> <br />//////////////////////////////////////////////////////////////////////////</p> <p>标准 C++ Q同上的不再注释Q:</p> <p>#include <algorithm>    //STL 通用法<br />#include <bitset>     //STL 位集容器<br />#include <cctype><br />#include <cerrno><br />#include <clocale><br />#include <cmath><br />#include <complex>     //复数c?br />#include <cstdio><br />#include <cstdlib><br />#include <cstring><br />#include <ctime><br />#include <deque>      //STL 双端队列容器<br />#include <exception>    //异常处理c?br />#include <fstream><br />#include <functional>   //STL 定义q算函数Q代替运符Q?br />#include <limits><br />#include <list>      //STL U性列表容?br />#include <map>       //STL 映射容器<br />#include <iomanip><br />#include <ios>       //基本输入Q输出支?br />#include <iosfwd>     //输入Q输出系l用的前置声明<br />#include <iostream><br />#include <istream>     //基本输入?br />#include <ostream>     //基本输出?br />#include <queue>      //STL 队列容器<br />#include <set>       //STL 集合容器<br />#include <sstream>     //Z字符串的?br />#include <stack>      //STL 堆栈容器    <br />#include <stdexcept>    //标准异常c?br />#include <streambuf>    //底层输入Q输出支?br />#include <string>     //字符串类<br />#include <utility>     //STL 通用模板c?br />#include <vector>     //STL 动态数l容?br />#include <cwchar><br />#include <cwctype></p> <p>using namespace std;</p> <p>//////////////////////////////////////////////////////////////////////////</p> <p>C99 增加Q?/p> <p>#include <complex.h>   //复数处理<br />#include <fenv.h>    //点环境<br />#include <inttypes.h>  //整数格式转换<br />#include <stdbool.h>   //布尔环境<br />#include <stdint.h>   //整型环境<br />#include <tgmath.h>   //通用cd数学?/p> <img src ="http://www.shnenglu.com/horsetail/aggbug/18346.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/horsetail/" target="_blank">[HORSETAIL]</a> 2007-02-05 00:27 <a href="http://www.shnenglu.com/horsetail/articles/18346.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>公共基础知识大纲http://www.shnenglu.com/horsetail/articles/18347.html[HORSETAIL][HORSETAIL]Sun, 04 Feb 2007 16:27:00 GMThttp://www.shnenglu.com/horsetail/articles/18347.htmlhttp://www.shnenglu.com/horsetail/comments/18347.htmlhttp://www.shnenglu.com/horsetail/articles/18347.html#Feedback0http://www.shnenglu.com/horsetail/comments/commentRss/18347.htmlhttp://www.shnenglu.com/horsetail/services/trackbacks/18347.html公共基础知识 大纲

公共基础知识
基本要求
1.掌握法的基本概c?br />2.掌握基本数据l构及其操作?br />3.掌握基本排序和查扄法?br />4.掌握逐步求精的结构化E序设计Ҏ?br />5.掌握软g工程的基本方法,h初步应用相关技术进行Y件开发的能力?br />6.掌握数据库的基本知识Q了解关pL据库的设计?
考试内容
一、基本数据结构与法
1.法的基本概念;法复杂度的概念和意义(旉复杂度与I间复杂度)?br />2.数据l构的定义;数据的逻辑l构与存储结构;数据l构的图形表C;U性结构与非线性结构的概念?br />3.U性表的定义;U性表的顺序存储结构及其插入与删除q算?br />4.栈和队列的定义;栈和队列的顺序存储结构及其基本运?br />5.U性单链表、双向链表与循环链表的结构及其基本运?br />6.树的基本概念Q二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历?br />7.序查找与二分法查找法Q基本排序算法(交换cL序,选择cL序,插入cL序)?br />二、程序设计基
1.E序设计Ҏ与风根{?br />2.l构化程序设计?br />3.面向对象的程序设计方法,对象Q方法,属性及l承与多态性?br />三、Y件工E基
1.软g工程基本概念QY件生命周期概念,软g工具与Y件开发环境?br />2.l构化分析方法,数据图Q数据字典,软g需求规D明书?br />3.l构化设计方法,M设计与详l设计?br />4.软g试的方法,白盒试与黑盒测试,试用例设计QY件测试的实施Q单元测试、集成测试和pȝ试?br />5.E序的调试,静态调试与动态调试?br />四、数据库设计基础
1.数据库的基本概念Q数据库Q数据库理pȝQ数据库pȝ?br />2.数据模型Q实体联pL型及E-R图,从E-R囑֯出关pL据模型?br />3.关系代数q算Q包括集合运及选择、投影、连接运,数据库规范化理论?br />4.数据库设计方法和步骤Q需求分析、概念设计、逻辑设计和物理设计的相关{略?br />考试方式
公共基础知识?0道选择题和5道填I题׃十分?/p>

[HORSETAIL] 2007-02-05 00:27 发表评论
]]>
turbo c 2.0 函数中文说明大全http://www.shnenglu.com/horsetail/articles/17850.html[HORSETAIL][HORSETAIL]Sat, 20 Jan 2007 15:11:00 GMThttp://www.shnenglu.com/horsetail/articles/17850.htmlhttp://www.shnenglu.com/horsetail/comments/17850.htmlhttp://www.shnenglu.com/horsetail/articles/17850.html#Feedback0http://www.shnenglu.com/horsetail/comments/commentRss/17850.htmlhttp://www.shnenglu.com/horsetail/services/trackbacks/17850.html                        Turbo C 2.0 函数中文说明大全

                                作?胡颖?/p>

分类函数,所在函数库为ctype.h
int isalpha(int ch)  若ch是字?'A'-'Z','a'-'z')q回??否则q回0
int isalnum(int ch)  若ch是字?'A'-'Z','a'-'z')或数?'0'-'9')
                     q回??否则q回0
int isascii(int ch)  若ch是字W?ASCII码中?-127)q回??否则q回0
int iscntrl(int ch)  若ch是作废字W?0x7F)或普通控制字W?0x00-0x1F)
                     q回??否则q回0
int isdigit(int ch)  若ch是数?'0'-'9')q回??否则q回0
int isgraph(int ch)  若ch是可打印字符(不含I格)(0x21-0x7E)q回??否则q回0
int islower(int ch)  若ch是小写字?'a'-'z')q回??否则q回0
int isprint(int ch)  若ch是可打印字符(含空?(0x20-0x7E)q回??否则q回0
int ispunct(int ch)  若ch是标点字W?0x00-0x1F)q回??否则q回0
int isspace(int ch)  若ch是空?' '),水^制表W?'\t'),回RW?'\r'),
                     走纸换行('\f'),垂直制表W?'\v'),换行W?'\n')
                     q回??否则q回0
int isupper(int ch)  若ch是大写字?'A'-'Z')q回??否则q回0
int isxdigit(int ch) 若ch?6q制?'0'-'9','A'-'F','a'-'f')q回??
                     否则q回0
int tolower(int ch)  若ch是大写字?'A'-'Z')q回相应的小写字?'a'-'z')
int toupper(int ch)  若ch是小写字?'a'-'z')q回相应的大写字?'A'-'Z')

-----------------------------------------------------------------------------------------------------------------------------

数学函数,所在函数库为math.h、stdlib.h、string.h、float.h
int      abs(int i)                    q回整型参数i的绝对?br />double  cabs(struct complex znum)      q回复数znum的绝对?br />double  fabs(double x)                 q回双精度参数x的绝对?br />long    labs(long n)                   q回长整型参数n的绝对?br />double   exp(double x)                 q回指数函数ex的?br />double frexp(double value,int *eptr)   q回value=x*2n中x的?n存贮在eptr?br />double ldexp(double value,int exp);    q回value*2exp的?br />double   log(double x)                 q回logex的?br />double log10(double x)                 q回log10x的?br />double   pow(double x,double y)        q回xy的?br />double pow10(int p)                    q回10p的?br />double  sqrt(double x)                 q回x的开?br />double  acos(double x)                 q回x的反余ucos-1(x)?x为弧?br />double  asin(double x)                 q回x的反正usin-1(x)?x为弧?br />double  atan(double x)                 q回x的反正切tan-1(x)?x为弧?br />double atan2(double y,double x)        q回y/x的反正切tan-1(x)?y的x为弧?br />double   cos(double x)                 q回x的余弦cos(x)?x为弧?br />double   sin(double x)                 q回x的正弦sin(x)?x为弧?br />double   tan(double x)                 q回x的正切tan(x)?x为弧?br />double  cosh(double x)                 q回x的双曲余弦cosh(x)?x为弧?br />double  sinh(double x)                 q回x的双曲正弦sinh(x)?x为弧?br />double  tanh(double x)                 q回x的双曲正切tanh(x)?x为弧?br />double hypot(double x,double y)        q回直角三角形斜边的长度(z),
                                       x和y为直角边的长?z2=x2+y2
double  ceil(double x)                 q回不小于x的最整?br />double floor(double x)                 q回不大于x的最大整?br />void   srand(unsigned seed)            初始化随机数发生?br />int     rand()                         产生一个随机数q返回这个数
double  poly(double x,int n,double c[])从参C生一个多式
double  modf(double value,double *iptr)双_ֺ数value分解成尾数和?br />double  fmod(double x,double y)        q回x/y的余?br />double frexp(double value,int *eptr)   双_ֺ数value分成数和阶
double  atof(char *nptr)               字W串nptr转换成QҎq返回这个QҎ
double  atoi(char *nptr)               字W串nptr转换成整数ƈq回q个整数
double  atol(char *nptr)               字W串nptr转换成长整数q返回这个整?br />char   *ecvt(double value,int ndigit,int *decpt,int *sign)
         QҎvalue转换成字W串q返回该字符?br />char   *fcvt(double value,int ndigit,int *decpt,int *sign)
         QҎvalue转换成字W串q返回该字符?br />char   *gcvt(double value,int ndigit,char *buf)
         数value转换成字W串q存于buf?q返回buf的指?br />char  *ultoa(unsigned long value,char *string,int radix)
         无W号整型数value转换成字W串q返回该字符?radix{换时所用基?br />char   *ltoa(long value,char *string,int radix)
         长整型数value转换成字W串q返回该字符?radix{换时所用基?br />char   *itoa(int value,char *string,int radix)
         整数value转换成字W串存入string,radix{换时所用基?br />double atof(char *nptr) 字W串nptr转换成双_ֺ?q返回这个数,错误q回0
int    atoi(char *nptr) 字W串nptr转换成整型数,  q返回这个数,错误q回0
long   atol(char *nptr) 字W串nptr转换成长整型?q返回这个数,错误q回0
double strtod(char *str,char **endptr)字W串str转换成双_ֺ?q返回这个数,
long   strtol(char *str,char **endptr,int base)字W串str转换成长整型?
                                               q返回这个数,
int          matherr(struct exception *e)
              用户修改数学错误q回信息函数(没有必要使用)
double       _matherr(_mexcep why,char *fun,double *arg1p,
                      double *arg2p,double retval)
                用户修改数学错误q回信息函数(没有必要使用)
unsigned int _clear87()   清除点状态字q返回原来的点状?br />void         _fpreset()   重新初化QҎ学程序包
unsigned int _status87()  q回点状态字

--------------------------------------------------------------------------------------------------------------------------------------

目录函数,所在函数库为dir.h、dos.h
int     chdir(char *path) 使指定的目录pathQ如:"C:\\WPS"Q变成当前的工作目录,?br />         功返?
int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文?成功
     q回0
     pathname为指定的目录名和文g??C:\\WPS\\TXT"
     ffblk为指定的保存文g信息的一个结?定义如下:
    ┏━━━━━━━━━━━━━━━━━━┓
    ┃struct ffblk                        ?br />    ┃{                                   ?br />    ?char ff_reserved[21]; /*DOS保留?/?br />    ?char ff_attrib;       /*文g属?/ ?br />    ?int  ff_ftime;        /*文g旉*/ ?br />    ?int  ff_fdate;        /*文g日期*/ ?br />    ?long ff_fsize;        /*文g长度*/ ?br />    ?char ff_name[13];     /*文g?/   ?br />    ┃}                                   ?br />    ┗━━━━━━━━━━━━━━━━━━┛
     attrib为文件属?׃下字W代?br />    ┏━━━━━━━━━┳━━━━━━━━┓
    ┃FA_RDONLY 只读文g┃FA_LABEL  h号┃
    ┃FA_HIDDEN 隐藏文g┃FA_DIREC  目录  ?br />    ┃FA_SYSTEM pȝ文g┃FA_ARCH   案  ?br />    ┗━━━━━━━━━┠Z━━━━━━━┛
    ?
    struct ffblk ff;
    findfirst("*.wps",&ff,FA_RDONLY);

int   findnext(struct ffblk *ffblk)      取匹配finddirst的文?成功q回0
void  fumerge(char *path,char *drive,char *dir,char *name,char *ext)
       此函数通过盘符drive(C:、A:{?,路径dir(\TC、\BC\LIB{?,
       文g名name(TC、WPS{?,扩展名ext(.EXE?COM{?l成一个文件名
       存与path?
int   fnsplit(char *path,char *drive,char *dir,char *name,char *ext)
       此函数将文g名path分解成盘Wdrive(C:、A:{?,路径dir(\TC、\BC\LIB{?,
       文g名name(TC、WPS{?,扩展名ext(.EXE?COM{?,q分别存入相应的变量?
int   getcurdir(int drive,char *direc) 此函数返回指定驱动器的当前工作目录名U?br />        drive 指定的驱动器(0=当前,1=A,2=B,3=C{?
        direc 保存指定驱动器当前工作\径的变量      成功q回0
char *getcwd(char *buf,iint n) 此函数取当前工作目录q存入buf?直到n个字
      节长Zؓ?错误q回NULL
int   getdisk() 取当前正在用的驱动?q回一个整?0=A,1=B,2=C{?
int   setdisk(int drive) 讄要用的驱动器drive(0=A,1=B,2=C{?,
       q回可用驱动器L
int   mkdir(char *pathname)  建立一个新的目录pathname,成功q回0
int   rmdir(char *pathname)  删除一个目录pathname,成功q回0
char *mktemp(char *template) 构造一个当前目录上没有的文件名q存于template?br />char *searchpath(char *pathname) 利用MSDOS扑և文gfilename所在\?
      ,此函C用DOS的PATH变量,未找到文件返回NULL

==========================================================================

q程函数,所在函数库为stdlib.h、process.h
void  abort() 此函数通过调用h出口代码3的_exit写一个终止信息于stderrQ?br />        q异常终止程序。无q回?br />int   exec…装入和q行其它E序
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函数族装入ƈq行E序pathnameQƈ参?br />          arg0(arg1,arg2,argv[],envp[])传递给子程?出错q回-1
       在exec函数族中,后缀l、v、p、ed到exec后,
       所指定的函数将h某种操作能力
      有后~  pӞ函数可以利用DOS的PATH变量查找子程序文件?br />              lӞ函数中被传递的参数个数固定?br />              vӞ函数中被传递的参数个数不固定?br />              eӞ函数传递指定参数envpQ允许改变子q程的环境,
                   无后~eӞ子进E用当前程序的环境?/p>

void  _exit(int status)l止当前E序,但不清理现场
void  exit(int status) l止当前E序,关闭所有文?写缓冲区的输?{待输出),
                       q调用Q何寄存器?出口函数",无返回?/p>

int   spawn…运行子E序
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模式下运行子E序pathname,q将参数
        arg0(arg1,arg2,argv[],envp[])传递给子程?出错q回-1
       mode行模?br />        mode?P_WAIT   表示在子E序q行完后q回本程?br />               P_NOWAIT 表示在子E序q行时同时运行本E序(不可?
               P_OVERLAY表示在本E序退出后q行子程?br />        在spawn函数族中,后缀l、v、p、ed到spawn后,
        所指定的函数将h某种操作能力
        有后~ p? 函数利用DOS的PATH查找子程序文?br />               l? 函数传递的参数个数固定.
               v? 函数传递的参数个数不固?
               e? 指定参数envp可以传递给子程?允许改变子程序运行环?
                  当无后缀e?子程序用本E序的环?

int   system(char *command) MSDOS命ocommand传递给DOS执行


================================================================

转换子程?函数库ؓmath.h、stdlib.h、ctype.h、float.h
char   *ecvt(double value,int ndigit,int *decpt,int *sign)
         QҎvalue转换成字W串q返回该字符?br />char   *fcvt(double value,int ndigit,int *decpt,int *sign)
         QҎvalue转换成字W串q返回该字符?br />char   *gcvt(double value,int ndigit,char *buf)
         数value转换成字W串q存于buf?q返回buf的指?br />char  *ultoa(unsigned long value,char *string,int radix)
         无W号整型数value转换成字W串q返回该字符?radix{换时所用基?br />char   *ltoa(long value,char *string,int radix)
         长整型数value转换成字W串q返回该字符?radix{换时所用基?br />char   *itoa(int value,char *string,int radix)
         整数value转换成字W串存入string,radix{换时所用基?br />double atof(char *nptr) 字W串nptr转换成双_ֺ?q返回这个数,错误q回0
int    atoi(char *nptr) 字W串nptr转换成整型数,  q返回这个数,错误q回0
long   atol(char *nptr) 字W串nptr转换成长整型?q返回这个数,错误q回0
double strtod(char *str,char **endptr)字W串str转换成双_ֺ?q返回这个数,
long   strtol(char *str,char **endptr,int base)字W串str转换成长整型?
                                               q返回这个数,
int    toascii(int c)   q回c相应的ASCII
int    tolower(int ch)  若ch是大写字?'A'-'Z')q回相应的小写字?'a'-'z')
int   _tolower(int ch)  q回ch相应的小写字?'a'-'z')
int    toupper(int ch)  若ch是小写字?'a'-'z')q回相应的大写字?'A'-'Z')
int   _toupper(int ch)  q回ch相应的大写字?'A'-'Z')

诊断函数,所在函数库为assert.h、math.h
void   assert(int test) 一个扩展成if语句那样的宏Q如果test试p|Q?br />        显CZ个信息ƈ异常l止E序,无返回?br />void   perror(char *string) 本函数将昄最q一ơ的错误信息Q格式如下:
        字符串string:错误信息
char   *strerror(char *str) 本函数返回最q一ơ的错误信息,格式如下:
        字符串str:错误信息
int    matherr(struct exception *e)
        用户修改数学错误q回信息函数(没有必要使用)
double _matherr(_mexcep why,char *fun,double *arg1p,
                double *arg2p,double retval)
        用户修改数学错误q回信息函数(没有必要使用)


=======================================================================

输入输出子程?函数库ؓio.h、conio.h、stat.h、dos.h、stdio.h、signal.h
int   kbhit()    本函数返回最q所敲的按键
int   fgetchar() 从控制台(键盘)M个字W,昄在屏q上
int   getch()    从控制台(键盘)M个字W,不显C在屏幕?br />int   putch()    向控制台(键盘)写一个字W?br />int   getchar()  从控制台(键盘)M个字W,昄在屏q上
int   putchar()  向控制台(键盘)写一个字W?br />int   getche()   从控制台(键盘)M个字W,昄在屏q上
int   ungetch(int c) 把字Wc退回给控制?键盘)
char *cgets(char *string) 从控制台(键盘)d字符串存于string?br />int   scanf(char *format[,argument…])从控制台d一个字W串,分别对各个参数进?br />       赋?使用BIOSq行输出
int   vscanf(char *format,Valist param)从控制台d一个字W串,分别对各个参数进?br />       赋?使用BIOSq行输出,参数从Valist param中取?br />int   cscanf(char *format[,argument…])从控制台d一个字W串,分别对各个参数进?br />       赋?直接Ҏ制台作操?比如昄器在昄时字W时即ؓ直接写频方式昄
int   sscanf(char *string,char *format[,argument,…])通过字符串string,分别对各?br />       参数q行赋?br />int   vsscanf(char *string,char *format,Vlist param)通过字符串string,分别对各?br />       参数q行赋?参数从Vlist param中取?br />int   puts(char *string)  发关一个字W串stringl控制台(昄?,
       使用BIOSq行输出
void  cputs(char *string) 发送一个字W串stringl控制台(昄?,
       直接Ҏ制台作操?比如昄器即为直接写频方式显C?br />int   printf(char *format[,argument,…]) 发送格式化字符串输出给控制?昄?
       使用BIOSq行输出
int   vprintf(char *format,Valist param) 发送格式化字符串输出给控制?昄?
       使用BIOSq行输出,参数从Valist param中取?br />int   cprintf(char *format[,argument,…]) 发送格式化字符串输出给控制?昄?,
       直接Ҏ制台作操?比如昄器即为直接写频方式显C?br />int   vcprintf(char *format,Valist param)发送格式化字符串输出给控制?昄?,
       直接Ҏ制台作操?比如昄器即为直接写频方式显C?
       参数从Valist param中取?br />int   sprintf(char *string,char *format[,argument,…])
        字W串string的内定w新写为格式化后的字符?br />int   vsprintf(char *string,char *format,Valist param)
        字W串string的内定w新写为格式化后的字符?参数从Valist param中取?br />int   rename(char *oldname,char *newname)文件oldname的名U改为newname
int   ioctl(int handle,int cmd[,int *argdx,int argcx])
        本函数是用来控制输入/输出讑֤的,误下表Q?br />        ┌───┬────────────────────────────?br />        │cmd?│功q                                                 ??br />        ├───┼────────────────────────────?br />        │?0   │取备信息                                          ??br />        │?1   │设|设备信息                                          ??br />        │?2   │把argcx字节d由argdx所指的地址                        ?br />        │?3   │在argdx所指的地址写argcx字节                            ?br />        │?4   │除把handle当作讑֤?0=当前,1=A,{?之外,均和cmd=2时一??br />        │?5   │除把handle当作讑֤?0=当前,1=A,{?之外,均和cmd=3时一??br />        │?6   │取输入状态                                            ??br />        │?7   │取输出状态                                            ??br />        │?8   │测试可换?只对于DOS 3.x                                ?br />        │?11  │置分n冲突的重计?只对DOS 3.x                        ?br />        └───┴────────────────────────────?br />int   (*ssignal(int sig,int(*action)())()执行软g信号(没必要?
int   gsignal(int sig)                   执行软g信号(没必要?

int   _open(char *pathname,int access)或写打开一个文?
        按后按access来确定是L件还是写文g,accessD下表
        ┌──────┬────────────────────?br />        │access值  ?│意义                                  ??br />        ├──────┼────────────────────?br />        │O_RDONLY    │读文g                                  ?br />        │O_WRONLY    │写文g                                  ?br />        │O_RDWR      │即M写                              ??br />        │O_NOINHERIT │若文g没有传递给子程?则被包含         ?br />        │O_DENYALL   │只允许当前处理必须存取的文件          ??br />        │O_DENYWRITE │只允许从Q何其它打开的文件读            ?br />        │O_DENYREAD  │只允许从Q何其它打开的文件写            ?br />        │O_DENYNONE  │允许其它共享打开的文件                ??br />        └──────┴────────────────────?br />int   open(char *pathname,int access[,int permiss])或写打开一个文?
        按后按access来确定是L件还是写文g,accessD下表
        ┌────┬────────────────────?br />        │access值│意义                                    ?br />        ├────┼────────────────────?br />        │O_RDONLY│读文g                                  ?br />        │O_WRONLY│写文g                                  ?br />        │O_RDWR  │即M写                              ??br />        │O_NDELAY│没有?对UNIXpȝ兼容                 ?br />        │O_APPEND│即M?但每ơ写L在文件尾d       ?br />        │O_CREAT │若文g存在,此标志无?若不存在,建新文g ?br />        │O_TRUNC │若文g存在,则长度被截ؓ0,属性不变     ??br />        │O_EXCL  │未?对UNIXpȝ兼容                     ?br />        │O_BINARY│此标志可显C地l出以二q制方式打开文g  ?br />        │O_TEXT  │此标志可用于显C地l出以文本方式打开文g?br />        └────┴────────────────────?br />        permiss为文件属?可ؓ以下?
         S_IWRITE允许写?S_IREAD允许读?S_IREAD|S_IWRITE允许诅R写
int   creat(char *filename,int permiss)  建立一个新文gfilenameQƈ讑֮
       d性。permiss为文件读写性,可以Z下?br />        S_IWRITE允许写?S_IREAD允许读?S_IREAD|S_IWRITE允许诅R写
int  _creat(char *filename,int attrib)  建立一个新文gfilenameQƈ讑֮文g
      属性。attrib为文件属性,可以Z下?br />        FA_RDONLY只读  FA_HIDDEN隐藏  FA_SYSTEMpȝ
int   creatnew(char *filenamt,int attrib) 建立一个新文gfilenameQƈ讑֮文g
       属性。attrib为文件属性,可以Z下?br />         FA_RDONLY只读  FA_HIDDEN隐藏  FA_SYSTEMpȝ
int   creattemp(char *filenamt,int attrib) 建立一个新文gfilenameQƈ讑֮文g
       属性。attrib为文件属性,可以Z下?br />         FA_RDONLY只读  FA_HIDDEN隐藏  FA_SYSTEMpȝ
int   read(int handle,void *buf,int nbyte)从文件号为handle的文件中读nbyte个字W?br />       存入buf?br />int  _read(int handle,void *buf,int nbyte)从文件号为handle的文件中读nbyte个字W?br />       存入buf?直接调用MSDOSq行操作.
int   write(int handle,void *buf,int nbyte)buf中的nbyte个字W写入文件号
       为handle的文件中
int  _write(int handle,void *buf,int nbyte)buf中的nbyte个字W写入文件号
       为handle的文件中
int   dup(int handle) 复制一个文件处理指针handle,q回q个指针
int   dup2(int handle,int newhandle) 复制一个文件处理指针handle到newhandle
int   eof(int *handle)查文件是否结?l束q回1,否则q回0
long  filelength(int handle) q回文g长度Qhandle为文件号
int   setmode(int handle,unsigned mode)本函数用来设定文件号为handle的文件的?br />       开方式
int   getftime(int handle,struct ftime *ftime) d文g号ؓhandle的文件的旉Q?br />        q将文g旉存于ftimel构中,成功q回0,ftimel构如下Q?br />        ┌─────────────────?br />        │struct ftime                      ?br />        │{                                 ?br />        ?unsigned ft_tsec:5; /*U?/       ?br />        ?unsigned ft_min:6;  /*?/       ?br />        ?unsigned ft_hour:5; /*?/       ?br />        ?unsigned ft_day:5;  /*?/       ?br />        ?unsigned ft_month:4;/*?/       ?br />        ?unsigned ft_year:1; /*q?1980*/  ?br />        │}                                 ?br />        └─────────────────?br />int   setftime(int handle,struct ftime *ftime) 重写文g号ؓhandle的文件时?
       新时间在l构ftime?成功q回0.l构ftime如下:
        ┌─────────────────?br />        │struct ftime                      ?br />        │{                                 ?br />        ?unsigned ft_tsec:5; /*U?/       ?br />        ?unsigned ft_min:6;  /*?/       ?br />        ?unsigned ft_hour:5; /*?/       ?br />        ?unsigned ft_day:5;  /*?/       ?br />        ?unsigned ft_month:4;/*?/       ?br />        ?unsigned ft_year:1; /*q?1980*/  ?br />        │}                                 ?br />        └─────────────────?br />long  lseek(int handle,long offset,int fromwhere) 本函数将文g号ؓhandle的文?br />        的指针移到fromwhere后的Woffset个字节处.
         SEEK_SET 文g开ꐠ?SEEK_CUR 当前位置   SEEK_END 文g?br />long  tell(int handle) 本函数返回文件号为handle的文件指?以字节表C?br />int   isatty(int handle)本函数用来取讑֤handle的类?br />int   lock(int handle,long offset,long length)   Ҏ件共享作锁
int   unlock(int handle,long offset,long length) 打开Ҏ件共享的锁
int   close(int handle) 关闭handle所表示的文件处?handle是从_creat、creat?br />        creatnew、creattemp、dup、dup2、_open、open中的一个处调用获得的文件处?br />        成功q回0否则q回-1,可用于UNIXpȝ
int  _close(int handle) 关闭handle所表示的文件处?handle是从_creat、creat?br />       creatnew、creattemp、dup、dup2、_open、open中的一个处调用获得的文件处?br />       成功q回0否则q回-1,只能用于MSDOSpȝ

FILE *fopen(char *filename,char *type) 打开一个文件filename,打开方式为typeQ?br />        q返回这个文件指针,type可ؓ以下字符串加上后~
      ┌──┬────┬───────┬────────?br />      │type│读写性?│文?2q制文g│徏?打开旧文??br />      ├──┼────┼───────┼────────?br />      │r   │读      │文本        ?│打开旧的文g    ?br />      │w   │写      │文本        ?│徏新文件      ??br />      │a   │添加  ?│文本        ?│有打开无则建新?br />      │r+  │读/写 ?│不限制        │打开            ?br />      │w+  │读/写 ?│不限制        │徏新文件      ??br />      │a+  │读/d │不限制        │有打开无则建新?br />      └──┴────┴───────┴────────?br />      可加的后~为t、b。加b表示文g以二q制形式q行操作Qt没必要?br />      ? ┌──────────────────?br />          ?include<stdio.h>                   ?br />          │main()                              ?br />          │{                                   ?br />          ?FILE *fp;                          ?br />          ?fp=fopen("C:\\WPS\\WPS.EXE","r+b");?br />          └──────────────────?br />FILE *fdopen(int ahndle,char *type)
FILE *freopen(char *filename,char *type,FILE *stream)
int   getc(FILE *stream)  从流stream中读一个字W,q返回这个字W?br />int   putc(int ch,FILE *stream)向流stream写入一个字Wch
int   getw(FILE *stream) 从流streamd一个整敎ͼ错误q回EOF
int   putw(int w,FILE *stream)向流stream写入一个整?br />int   ungetc(char c,FILE *stream) 把字Wc退回给streamQ下一ơ读q的字符是c
int   fgetc(FILE *stream) 从流stream处读一个字W,q返回这个字W?br />int   fputc(int ch,FILE *stream) 字Wch写入stream?br />char *fgets(char *string,int n,FILE *stream) 从流stream中读n个字W存入string?br />int   fputs(char *string,FILE *stream) 字W串string写入stream?br />int   fread(void *ptr,int size,int nitems,FILE *stream) 从流stream中读入nitems
       个长度ؓsize的字W串存入ptr?br />int   fwrite(void *ptr,int size,int nitems,FILE *stream) 向流stream中写入nitems
       个长度ؓsize的字W串,字符串在ptr?br />int   fscanf(FILE *stream,char *format[,argument,…]) 以格式化形式从流stream?br />       d一个字W串
int   vfscanf(FILE *stream,char *format,Valist param) 以格式化形式从流stream?br />       d一个字W串,参数从Valist param中取?br />int   fprintf(FILE *stream,char *format[,argument,…])  以格式化形式一个字W?br />       串写l指定的stream
int   vfprintf(FILE *stream,char *format,Valist param)  以格式化形式一个字W?br />       串写l指定的stream,参数从Valist param中取?br />int   fseek(FILE *stream,long offset,int fromwhere) 函数把文件指针移到fromwhere
       所指位|的向后offset个字节处,fromwhere可以Z下?
       SEEK_SET 文g开ꐠ?SEEK_CUR 当前位置   SEEK_END 文g?br />long  ftell(FILE *stream)  函数q回定位在stream中的当前文g指针位置,以字节表C?br />int   rewind(FILE *stream) 当前文件指针streamUd文g开?br />int   feof(FILE *stream) 流stream上的文g指针是否在结束位|?br />int   fileno(FILE *stream) 取流stream上的文g处理Qƈq回文g处理
int   ferror(FILE *stream) 流stream上是否有d错误Q如有错误就q回1
void  clearerr(FILE *stream) 清除stream上的d错误
void  setbuf(FILE *stream,char *buf) l流stream指定一个缓冲区buf
void  setvbuf(FILE *stream,char *buf,int type,unsigned size)
       l流stream指定一个缓冲区buf,大小为size,cd为type,type的D下表
      ┌───┬───────────────────────────────?br />      │type值│意义                                                          ?br />      ├───┼───────────────────────────────?br />      │_IOFBF│文件是完全~冲?当缓冲区是空?下一个输入操作将企图填满整个~│
      │    ?│冲?在输出时,在把M数据写到文g之前,完全填充缓冲区.      ?br />      │_IOLBF│文件是行缓冲区.当缓冲区为空?下一个输入操作将仍然企图填整个缓?br />      │    ?│冲?然而在输出?每当新行W写到文?~冲区就被清z掉.        ?br />      │_IONBF│文件是无缓冲的.buf和size参数是被忽略?每个输入操作直接从??br />      │    ?│g?每个输出操作立x数据写到文g?                      ?br />      └───┴───────────────────────────────?br />int   fclose(FILE *stream) 关闭一个流Q可以是文g或设?例如LPT1)
int   fcloseall()          关闭所有除stdin或stdout外的?br />int   fflush(FILE *stream) 关闭一个流Qƈ对缓冲区作处?br />        处理卛_ȝ,流内内容读入缓冲区Q?br />        对写的流Q将~冲区内内容写入。成功返?
int   fflushall()          关闭所有流QƈҎ各自的缓冲区作处?br />        处理卛_ȝ,流内内容读入缓冲区Q?br />        对写的流Q将~冲区内内容写入。成功返?

int   access(char *filename,int amode) 本函数检查文件filenameq返回文件的属?
        函数属性存于amode中,amode׃下位的组合构?br />          06可以诅R写       04可以读 ?02可以写 ?01执行(忽略?   00文g存在
      如果filename是一个目?函数只定目录是否存在
      函数执行成功q回0,否则q回-1
int   chmod(char *filename,int permiss) 本函数用于设定文件filename的属?br />        permiss可以Z下?br />           S_IWRITE允许写?S_IREAD允许读?S_IREAD|S_IWRITE允许诅R写
int  _chmod(char *filename,int func[,int attrib]);
       本函数用于读取或讑֮文gfilename的属性,
       当func=0Ӟ函数q回文g的属性;当func=1Ӟ函数讑֮文g的属?br />       若ؓ讑֮文g属性,attrib可以Z列常C一
       FA_RDONLY只读  FA_HIDDEN隐藏  FA_SYSTEMpȝ


=================================================================

接口子程?所在函数库?dos.h、bios.h
unsigned sleep(unsigned seconds)暂停seconds微秒(癑ֈ之一U?
int      unlink(char *filename)删除文gfilename
unsigned FP_OFF(void far *farptr)本函数用来取q指针farptr的偏U量
unsigned FP_SEG(void far *farptr)本函数用来没|远指针farptr的段?br />void far *MK_FP(unsigned seg,unsigned off)ҎDseg和偏U量off构造一个far指针
unsigned getpsp()取程序段前缀的段地址,q返回这个地址
char *parsfnm(char *cmdline,struct fcb *fcbptr,int option)
       函数分析一个字W串,通常,对一个文件名来说,是由cmdline所指的一个命令行.
       文g名是攑օ一个FCB中作Z个驱动器,文g名和扩展?FCB是由fcbptr所?br />       定的.option参数是DOS分析pȝ调用?AL文本的?

int   absread(int drive,int nsects,int sectno,void *buffer)本函数功能ؓȝ定的
       盘扇区,drive为驱动器?0=A,1=B{?,nsectsȝ扇区?sectno为开始的?br />       辑扇区号,bufferZ存所L据的保存I间
int   abswrite(int drive,int nsects,int sectno,void *buffer)本函数功能ؓ写特定的
       盘扇区,drive为驱动器?0=A,1=B{?,nsects写的扇区?sectno为开始的?br />       辑扇区号,bufferZ存所写数据的所在空?br />void  getdfree(int drive,struct dfree *dfreep)本函数用来取盘的自q?
       drive为磁盘号(0=当前,1=A{?.函数磁盘特性的由dfreep指向的dfreel构?
       dfreel构如下:
       ┌───────────────────?br />       │struct dfree                          ?br />       │{                                     ?br />       ?unsigned df_avail; /*有用个?/    ?br />       ?unsigned df_total; /*d个?/    ?br />       ?unsigned df_bsec;  /*每个扇区字节?/?br />       ?unsigned df_sclus; /*每个扇区数*/  ?br />       │}                                     ?br />       └───────────────────?br />char far *getdta()             取磁盘{换地址DTA
void      setdta(char far *dta)讄盘转换地址DTA
void  getfat(int drive,fatinfo *fatblkp)
       本函数返回指定驱动器drive(0=当前,1=A,2=B{?的文件分配表信息
       q存入结构fatblkp?l构如下:
       ┌──────────────────?br />       │struct fatinfo                      ?br />       │{                                   ?br />       ?char fi_sclus; /*每个扇区数*/    ?br />       ?char fi_fatid; /*文g分配表字节数*/?br />       ?int  fi_nclus; /*的数目*/        ?br />       ?int  fi_bysec; /*每个扇区字节?/  ?br />       │}                                   ?br />       └──────────────────?br />void  getfatd(struct fatinfo *fatblkp) 本函数返回当前驱动器的文件分配表信息,
       q存入结构fatblkp?l构如下:          
       ┌──────────────────?br />       │struct fatinfo                      ?br />       │{                                   ?br />       ?char fi_sclus; /*每个扇区数*/    ?br />       ?char fi_fatid; /*文g分配表字节数*/?br />       ?int  fi_nclus; /*的数目*/        ?br />       ?int  fi_bysec; /*每个扇区字节?/  ?br />       │}                                   ?br />       └──────────────────?/p>

int   bdos(int dosfun,unsigned dosdx,unsigned dosal)本函数对MSDOSpȝq行调用,
       dosdx为寄存器dx的?dosal为寄存器al的?dosfun为功能号
int   bdosptr(int dosfun,void *argument,unsiigned dosal)本函数对MSDOSpȝq行调用,
       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号中?用户定义的寄存器值存?br />       l构inregs中和l构segregs?执行完后返回的寄存器值存于结构outregs?
int   intdos(union REGS *inregs,union REGS *outregs)
       本函数执行DOS中断0x21来调用一个指定的DOS函数,用户定义的寄存器?br />       存于l构inregs?执行完后函数返回的寄存器值存于结构outregs?br />int   intdosx(union REGS *inregs,union REGS *outregs,struct SREGS *segregs)
       本函数执行DOS中断0x21来调用一个指定的DOS函数,用户定义的寄存器?br />       存于l构inregs和segregs?执行完后函数返回的寄存器值存于结构outregs?br />void  intr(int intr_num,struct REGPACK *preg)本函C一个备用的8086软g中断接口
       它能产生一个由参数intr_num指定?086软g中断.函数在执行Y件中断前,
       从结构preg复制用户定义的各寄存器值到各个寄存?软g中断完成?
       函数当前各个寄存器的值复制到l构preg?参数如下:
       intr_num 被执行的中断?br />       pregZ存用户定义的寄存器值的l构,l构如下
       ┌──────────────────────?br />       │struct REGPACK                              ?br />       │{                                           ?br />       ?unsigned r_ax,r_bx,r_cx,r_dx;              ?br />       ?unsigned r_bp,r_si,r_di,r_ds,r_es,r_flags; ?br />       │}                                           ?br />       └──────────────────────?br />       函数执行完后,新的寄存器值存于结构preg?br />void  keep(int status,int size)以status状态返回MSDOS,但程序仍保留于内存中,所?br />       用空间由size军_.
void  ctrlbrk(int (*fptr)()) 讄中断后的对中断的处理E序.
void  disable() 止发生中断
void  enable()  允许发生中断
void  geninterrupt(int intr_num)执行由intr_num所指定的Y件中?br />void  interrupt(* getvect(int intr_num))() q回中断号ؓ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所指的E序
void  hardresume(int rescode)g错误处理函数
void  hardretn(int errcode)  g错误处理函数
int   inport(int prot) 从指定的输入端口d一个字,q返回这个字
int   inportb(int port)从指定的输入端口d一个字?q返回这个字?br />void  outport(int port,int word) 字word写入指定的输出端口port
void  outportb(int port,char byte)字节byte写入指定的输出端口port
int   peek(int segment,unsigned offset) 函数q回segment:offset处的一个字
char  peekb(int segment,unsigned offset)函数q回segment:offset处的一个字?br />void  poke(int segment,int offset,char value) 字value写到segment:offset?br />void  pokeb(int segment,int offset,int value) 字节value写到segment:offset?br />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)函数把段寄存器的当前值放q结构segtbl?br />int   getverify()         取检验标志的当前状?0=验关?1=验打开)
void  setverify(int value)讄当前验状?
       value?表示关闭??表示打开?br />int   getcbrk()本函数返回控制中断检的当前讄
int   setcbrk(int value)本函数用来设|控制中断检ؓ接通或断开
       当value=0?为断开?当value=1?为接开?/p>

int   dosexterr(struct DOSERR *eblkp)取扩展错?在DOS出现错误?此函数将扩充?br />       错误信息填入eblkp所指的DOSERRl构?该结构定义如?
      ┌──────────────?br />      │struct DOSERR               ?br />      │{                           ?br />      ?int  exterror;/*扩展错误*/ ?br />      ?char class;   /*错误cd*/ ?br />      ?char action;  /*方式*/     ?br />      ?char locus;   /*错误场所*/ ?br />      │}                           ?br />      └──────────────?br />int   bioscom(int cmd,char type,int port) 本函数负责对数据的通讯工作,
        cmd可以Z下?
        0 |通讯参数为字节byte值   ?1 发送字W通过通讯U输?br />        2 从通讯U接受字W         ?3 q回通讯的当前状?br />        port为通讯端口,port=0旉讯端口为COM1,port=1旉讯端口为COM2,以此cL
        byteZ送或接收数据时的参数,Z下位的组?
        ┌───┬─────┬───┬─────┬───┬─────?br />        │byte值│意义      │byte值│意义      │byte值│意义      ?br />        ├───┼─────┼───┼─────┼───┼─────?br />        ?x02  ?数据位 ??x03  ?数据位 ??x00  ?停止位 ??br />        ?x04  ?停止位 ??x00  │无奇偶性??x08  │奇数奇偶性│
        ?x18  │偶数奇偶性│0x00  ?10波特   ?x20  ?50波特   ?br />        ?x40  ?00波特   ?x60  ?00波特   ?x80  ?200波特  ?br />        ?xA0  ?400波特  ?xC0  ?800波特  ?xE0  ?600波特  ?br />        └───┴─────┴───┴─────┴───┴─────?br />        例如:0xE0|0x08|0x00|0x03卌C置通讯口ؓ9600波特,奇数奇偶?1停止?
             8数据?
        函数q回gؓ一?6位整?定义如下:
        W?5?时
        W?4?传送移位寄存器I?br />        W?3?传送固定寄存器I?br />        W?2?中断?br />        W?1?帧错?br />        W?0?奇偶错误
        W?9?q蝲q行错误
        W?8?数据qA
        W?7?接收U信h?br />        W?6?环Ş指示?br />        W?5?数据讄qA
        W?4?清除发?br />        W?3?δ接收U信h器
        W?2?下降边环形检器
        W?1?δ数据讄qA
        W?0?δ清除发?/p>

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 重置软磁盘系l?q强q驱动器控制器来执行复?忽略所有其它参?
        1 q回最后的盘操作状?忽略所有其它参?br />        2 M个或多个盘扇区到内?d始的扇区由head、track、sectorl出?br />          扇区Lnsectsl出。把每个扇区512个字节的数据dbuffer
        3 从内存读数据写到一个或多个扇区。写开始的扇区由head、track、sector
          l出。扇区号由nsectsl出。所写数据在buffer中,每扇?12个字节?br />        4 验一个或多个扇区。开始扇区由head、track、sectorl出。扇区号?br />          nsectsl出?br />        5 格式化一个磁道,该磁道由head和trackl出。buffer指向写在指定track?br />          的扇区磁头器的一个表?br />          以下cmd值只允许用于XT或AT微机Q?br />        6 格式化一个磁道,q置坏扇区标志?br />        7 格式化指定磁道上的驱动器开头?br />        8 q回当前驱动器参敎ͼ驱动器信息返回写在buffer?以四个字节表C??br />        9 初始化一寚w动器Ҏ?br />       10 执行一个长的读Q每个扇512?个额外字?br />       11 执行一个长的写Q每个扇区写512?个额外字?br />       12 执行一个磁盘查?br />       13 交替盘复位
       14 L区缓冲区
       15 写扇区缓冲区
       16 查指定的驱动器是否就l?br />       17 复核驱动?br />       18 控制器RAM诊断
       19 驱动器诊?br />       20 控制器内部诊
       函数q回׃列位l合成的状态字节:
       0x00 操作成功
       0x01 坏的命o
       0x02 地址标记找不?br />       0x04 记录找不?br />       0x05 重置p|
       0x07 驱动参数zdp|
       0x09 企图DMAl过64K界限
       0x0B 查坏的磁盘标?br />       0x10 坏的ECC在磁盘上?br />       0x11 ECC校正的数据错误(注意它不是错误)
       0x20 控制器失?br />       0x40 查找p|
       0x80 响应的连接失?br />       0xBB 出现无定义错?br />       0xFF d操作p|

int   biodquip() 查设备,函数q回一字节Q该字节每一位表CZ个信息,如下Q?br />       W?5?打印机号
       W?4?打印机号
       W?3?未?br />       W?2?q接游戏I/O
       W?1?RS232端口?br />       W?8?未?br />       W?7?软磁盘号
       W?6?软磁盘号,
              00?号驱动器,01?号驱动器,10?号驱动器,11?号驱动器
       W?5?初始?br />       W?4?昄器模?br />              00为未使用Q?1?0x25BW彩色昄?br />              10?0x25BW彩色昄卡,11?0x25BW单色昄?br />       W?3?母扦?br />       W?2?随机存贮器容?00?6K,01?2K,10?8K,11?4K
       W?1?点q处理?br />       W?0?从Y盘引导

int   bioskey(int cmd)本函数用来执行各U键盘操作,由cmd定操作?br />       cmd可ؓ以下|
       0 q回敲键盘上的下一个键。若?位ؓ?,即ؓASCII字符Q若?位ؓ0,
         则返回扩充了的键盘代码?br />       1 试键盘是否可用于读。返?表示没有键可用;否则q回下一ơ敲键之倹{?br />         敲键本n一直保持由下次调用Lcmdgؓ0的bioskey所q回的倹{?br />       2 q回当前的键盘状态,p回整数的每一个位表示Q见下表Q?br />        ┌──┬───────────┬───────────?br />        ??│ؓ0时意义           ?│ؓ1时意义           ??br />        ├──┼───────────┼───────────?br />        ?7  │插入状态            ?│改写状态            ??br />        ?6  │大写状态            ?│小写状态            ??br />        ?5  │数字状态,NumLock灯亮 │光标状态,NumLock灯熄 ?br />        ?4  │ScrollLock灯亮        │ScrollLock灯熄        ?br />        ?3  │Alt按下               │Alt未按下           ??br />        ?2  │Ctrl按下              │Ctrl未按下          ??br />        ?1  │左Shift按下           │左Shift未按下       ??br />        ?0  │右Shift按下           │右Shift未按下       ??br />        └──┴───────────┴───────────?br />int   biosmemory()q回内存大小,以K为单?
int   biosprint(int cmd,int byte,int port)控制打印机的输入/输出.
       port为打印机?0为LPT1,1为LPT2,2为LPT3{?br />       cmd可以Z下?
         0 打印字符,字Wbyte送到打印?br />         1 打印机端口初始化
         2 L印机状?br />       函数q回值由以下位值组成表C当前打印机状?br />         0x01 讑֤旉时
         0x08 输入/输出错误
         0x10 选择?br />         0x20 走纸
         0x40 认可
         0x80 不忙?/p>

int   biostime(int cmd,long newtime)计时器控?cmd为功能号,可ؓ以下?br />        0 函数q回计时器的当前?br />        1 计时器设ؓ新值newtime

struct country *country(int countrycmode,struct country *countryp)
       本函数用来控制某一国家的相关信?如日?旉,货币{?
       若countryp=-1?当前的国家置为countrycode?必须为非0).否则,由countryp
       所指向的countryl构用下列的国家相关信息填充:
       (1)当前的国?若countrycode??)由countrycode所l定的国?
       l构country定义如下:
      ┌────────────────────?br />      │struct country                          ?br />      │{                                       ?br />      ?int  co_date;         /*日期格式*/     ?br />      ?char co_curr[5];      /*货币W号*/     ?br />      ?char co_thsep[2];     /*数字分隔W?/   ?br />      ?char co_desep[2];     /*数?/       ?br />      ?char co_dtsep[2];     /*日期分隔W?/   ?br />      ?char co_tmsep[2];     /*旉分隔W?/   ?br />      ?char co_currstyle;    /*货币形式*/     ?br />      ?char co_digits;       /*有效数字*/     ?br />      ?int (far *co_case)(); /*事g处理函数*/ ?br />      ?char co_dasep;        /*数据分隔W?/   ?br />      ?char co_fill[10];     /*补充字符*/     ?br />      │}                                       ?br />      └────────────────────?br />       co_date的值所代表的日期格式是:
        0 月日qb ?1 日月qb  ?2 q月?br />       co_currstrle的值所代表的货币显C方式是
        0 货币W号在数值前,中间无空?br />        1 货币W号在数值后,中间无空?br />        2 货币W号在数值前,中间有空?br />        3 货币W号在数值后,中间有空?/p>

操作函数,所在函数库为string.h、mem.h
mem…操作存贮数l?br />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)
q些函数,mem…系列的所有成员均操作存贮数组.在所有这些函C,数组是n字节?
memcpy从source复制一个n字节的块到destin.如果源块和目标块重P,则选择复制方向,
  以例正确地复制覆盖的字节.
memmove与memcpy相同.
memsets的所有字节置于字节ch?s数组的长度由nl出.
memcmp比较正好是n字节长的两个字符串s1和s2.些函数按无符号字W比较字?因此,
  memcmp("0xFF","\x7F",1)q回值大?.
memicmp比较s1和s2的前n个字?不管字符大写或小?
memccpy从source复制字节到destin.复制一l束发生下列Q一情况:
  (1)字符ch首选复制到destin.
  (2)n个字节已复制到destin.
memchr对字Wch索s数组的前n个字?
q回?memmove和memcpyq回destin
       memsetq回s的?br />       memcmp和memicmp─┬─若s1<s2q回值小?
                        ├─若s1=s2q回值等?
                        └─若s1>s2q回值大?
       memccpy若复制了ch,则返回直接跟随ch的在destin中的字节的一个指?
              否则q回NULL
       memchrq回在s中首先出现ch的一个指?如果在s数组中不出现ch,p回NULL.

void  movedata(int segsrc,int offsrc,
               int segdest,int offdest,
               unsigned numbytes)
       本函数将源地址(segsrc:offsrc)处的numbytes个字?br />       复制到目标地址(segdest:offdest)
void  movemem(void *source,void *destin,unsigned len)
       本函Csource处复制一块长len字节的数据到destin.若源地址和目标地址字符?br />       重P,则选择复制方向,以便正确的复制数?
void  setmem(void *addr,int len,char value)
       本函数把addr所指的块的W一个字节置于字节value?

str…字W串操作函数
char   stpcpy(char *dest,const char *src)
        字W串src复制到dest
char   strcat(char *dest,const char *src)
        字W串srcd到dest末尾
char   strchr(const char *s,int c)
        索ƈq回字符c在字W串s中第一ơ出现的位置
int    strcmp(const char *s1,const char *s2)
        比较字符串s1与s2的大?q返回s1-s2
char   strcpy(char *dest,const char *src)
        字W串src复制到dest
size_t strcspn(const char *s1,const char *s2)
        扫描s1,q回在s1中有,在s2中也有的字符个数
char   strdup(const char *s)
        字W串s复制到最q徏立的单元
int    stricmp(const char *s1,const char *s2)
        比较字符串s1和s2,q返回s1-s2
size_t strlen(const char *s)
        q回字符串s的长?br />char   strlwr(char *s)
        字W串s中的大写字母全部转换成小写字?q返回{换后的字W串
char   strncat(char *dest,const char *src,size_t maxlen)
        字W串src中最多maxlen个字W复制到字符串dest?br />int    strncmp(const char *s1,const char *s2,size_t maxlen)
        比较字符串s1与s2中的前maxlen个字W?br />char   strncpy(char *dest,const char *src,size_t maxlen)
        复制src中的前maxlen个字W到dest?br />int    strnicmp(const char *s1,const char *s2,size_t maxlen)
        比较字符串s1与s2中的前maxlen个字W?br />char   strnset(char *s,int ch,size_t n)
        字W串s的前n个字W置于ch?br />char   strpbrk(const char *s1,const char *s2)
        扫描字符串s1,q返回在s1和s2中均有的字符个数
char   strrchr(const char *s,int c)
        扫描最后出C个给定字Wc的一个字W串s
char   strrev(char *s)
        字W串s中的字符全部颠倒顺序重新排?q返回排列后的字W串
char   strset(char *s,int ch)
        一个字W串s中的所有字W置于一个给定的字符ch
size_t strspn(const char *s1,const char *s2)
        扫描字符串s1,q返回在s1和s2中均有的字符个数
char   strstr(const char *s1,const char *s2)
        扫描字符串s2,q返回第一ơ出现s1的位|?br />char   strtok(char *s1,const char *s2)
        索字W串s1,该字W串s1是由字符串s2中定义的定界W所分隔
char   strupr(char *s)
        字W串s中的写字母全部转换成大写字?q返回{换后的字W串

存贮分配子程?所在函数库为dos.h、alloc.h、malloc.h、stdlib.h、process.h
int    allocmem(unsigned size,unsigned *seg)利用DOS分配I闲的内?
        size为分配内存大?seg为分配后的内存指?br />int    freemem(unsigned seg)释放先前由allocmem分配的内?seg为指定的内存指针
int    setblock(int seg,int newsize)本函数用来修Ҏ分配的内存长?
        seg为已分配内存的内存指?newsize为新的长?/p>

int    brk(void *endds)
        本函数用来改变分配给调用E序的数据段的空间数?新的I间l束地址为endds
char  *sbrk(int incr)
        本函数用来增加分配给调用E序的数据段的空间数?增加incr个字节的I间

unsigned long coreleft() 本函数返回未用的存储区的长度,以字节ؓ单位
void  *calloc(unsigned nelem,unsigned elsize)分配nelem个长度ؓelsize的内存空?br />        q返回所分配内存的指?br />void  *malloc(unsigned size)分配size个字节的内存I间,q返回所分配内存的指?br />void   free(void *ptr)释放先前所分配的内?所要释攄内存的指针ؓptr
void  *realloc(void *ptr,unsigned newsize)改变已分配内存的大小,ptr为已分配有内
        存区域的指针,newsize为新的长?q回分配好的内存指针.

long   farcoreleft() 本函数返回远堆中未用的存储区的长?以字节ؓ单位
void far *farcalloc(unsigned long units,unsigned long unitsz)
           从远堆分配units个长度ؓunitsz的内存空?q返回所分配内存的指?br />void  *farmalloc(unsigned long size)分配size个字节的内存I间,
       q返回分配的内存指针
void   farfree(void far *block)释放先前从远堆分配的内存I间,
        所要释攄q堆内存的指针ؓblock
void far *farrealloc(void far *block,unsigned long newsize)改变已分配的q堆?br />           存的大小,block为已分配有内存区域的指针,newzie为新的长?q回分配?br />           的内存指?/p>

旉日期函数,函数库ؓtime.h、dos.h
在时间日期函数里,主要用到的结构有以下几个:
L间日期贮存结构tm
┌──────────────────────?br />│struct tm                                   ?br />│{                                           ?br />?int tm_sec;   /*U?0-59*/                  ?br />?int tm_min;   /*?0-59*/                  ?br />?int tm_hour;  /*?0-23*/                  ?br />?int tm_mday;  /*天数,1-31*/                ?br />?int tm_mon;   /*月数,0-11*/                ?br />?int tm_year;  /*?900的年?/             ?br />?int tm_wday;  /*自星期日的天?-6*/        ?br />?int tm_yday;  /*??日v的天?0-365*/   ?br />?int tm_isdst; /*是否采用夏时?采用为正?/?br />│}                                           ?br />└──────────────────────?br />日期贮存l构date
┌───────────────?br />│struct date                   ?br />│{                             ?br />?int da_year; /*?900的年?/?br />?char da_day; /*天数*/        ?br />?char da_mon; /*月数 1=Jan*/  ?br />│}                             ?br />└───────────────?br />旉贮存l构time
┌────────────────?br />│struct time                     ?br />│{                               ?br />?unsigned char ti_min;  /*分钟*/?br />?unsigned char ti_hour; /*时*/?br />?unsigned char ti_hund;         ?br />?unsigned char ti_sec;  /*U?/  ?br />│                              ??br />└────────────────?br />char      *ctime(long *clock)
            本函数把clock所指的旉(如由函数timeq回的时?转换成下列格式的
            字符?Mon Nov 21 11:31:54 1983\n\0
char      *asctime(struct tm *tm)
            本函数把指定的tml构cȝ旉转换成下列格式的字符?
            Mon Nov 21 11:31:54 1983\n\0
double     difftime(time_t time2,time_t time1)
            计算l构time2和time1之间的时间差?以秒为单?
struct tm *gmtime(long *clock)本函数把clock所指的旉(如由函数timeq回的时?
            转换成格林威L?q以tml构形式q回
struct tm *localtime(long *clock)本函数把clock所指的旉(如函数timeq回的时?
            转换成当地标准时?q以tml构形式q回
void       tzset()本函数提供了对UNIX操作pȝ的兼Ҏ?br />long       dostounix(struct date *dateptr,struct time *timeptr)
            本函数将dateptr所指的日期,timeptr所指的旉转换成UNIX格式,q返?br />            自格林威L?970q??日凌晨v到现在的U数
void       unixtodos(long utime,struct date *dateptr,struct time *timeptr)
            本函数将自格林威L?970q??日凌晨v到现在的U数utime转换?br />            DOS格式q保存于用户所指的l构dateptr和timeptr?br />void       getdate(struct date *dateblk)本函数将计算机内的日期写入结构dateblk
            中以供用户?br />void       setdate(struct date *dateblk)本函数将计算机内的日期改?br />            q构dateblk所指定的日?br />void       gettime(struct time *timep)本函数将计算机内的时间写入结构timep?
            以供用户使用
void       settime(struct time *timep)本函数将计算机内的时间改?br />            q构timep所指的旉
long       time(long *tloc)本函数给格林威治旉1970q??日凌晨至现在所l?br />            q的U数,q将该值存于tloc所指的单元?
int        stime(long *tp)本函数将tp所指的旉(例如由time所q回的时?
            写入计算Z.

 



[HORSETAIL] 2007-01-20 23:11 发表评论
]]>
99ŷþþþƷѿ| ޾ƷۺϾþ| .Ʒþþ鶹Ʒ| þ99ֻƵƷ8| ھƷ˾þþþ| 91þۺ| þþþòҰ¸߳| þþۺϾɫۺ̾| ߳þѹۿ| þþþƷþþþӰԺ| þþSS鶹ŷպ| ղƷþþþþþɫ| þþƷ99͵ | þþƷ77777| һձþþ| պvavaŷvaþ| þˬˬAV| Ʒþþþþ| þAVۺϺɫ| þþƷ99Ʒ| þZYZԴվĶ| ӰһѾþþþþþþ| Ѿþþþþ| ɫۺϾþþþ| þþƷһ| þþþavר| þþþAV| Ʒþþþþר| ݺۺϾþAVһ| ھƷþþþþ鶹| ھƷþþþav| 99þþƷѿһ | þþwww˳ɾƷ| ƷŮٸaѾþ| ѹۿþþƵ| þ޴ɫĻþþ| þþþAVƬ| þAVԴվ| ŷþһwwwwww.| Ʒgzþþ| 91鶹Ʒ91þþþþ|