C库函数手册

C()

<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript> </script>
,所在函库为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是作字符(0x 7F )或普通控制字符(0x00-0x 1F )
                    
返回非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-0x 1F )返回非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)
ch16('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.hstdlib.hstring.hfloat.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*2nx,neptr
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
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),yx弧度
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() 
返回浮点

,所在函库为dir.hdos.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
void  fumerge(char *path,char *drive,char *dir,char *name,char *ext)
      
此函过盘drive(C:A:),dir(/TC/BC/LIB),
      
文件名name(TCWPS),展名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(TCWPS),展名ext(.EXE.COM),存入相量中.
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所在路,
      ,
此函使用DOSPATH,未找到文件返回NULL

程函,所在函库为stdlib.hprocess.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族中,lvpe添加到exec后,
      
所指定的函数将具有某操作能力
     
有后  p,函可以利用DOSPATH找子程序文件。
              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族中,lvpe添加到spawn后,
       
所指定的函数将具有某操作能力
       
有后 p, 利用DOSPATH找子程序文件
               l
, 传递参数个数固定.
               v
, 传递参数个数不固定.
               e
, 指定参数envp可以传递给子程序,子程序.
                 
无后e,子程序使用本程序的.

int   system(char *command)
MSDOS命令command传递给DOS

转换子程序,库为math.hstdlib.hctype.hfloat.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)  
返回cASCII
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.hmath.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.hconio.hstat.hdos.hstdio.hsignal.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)
制一文件理指handlenewhandle
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*/  │
       
}                                
       
└─────────────────┘
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_creatcreat
        creatnew
creattempdupdup2_openopen中的一处调得的文件
       
成功返回0返回-1,可用于UNIX
int  _close(int handle)
关闭handle所表示的文件,handle_creatcreat
       creatnew
creattempdupdup2_openopen中的一处调得的文件
      
成功返回0返回-1,只能用于MSDOS

FILE *fopen(char *filename,char *type)
文件filename,方式type
       
返回这个文件指type以下字符串加上后
      ┌──┬────┬───────┬────────┐

     
type读写  │文本/2制文件建新/开旧文件
     
├──┼────┼───────┼────────┤
     
r         │文本          │开旧的文件    │
     
w         │文本          │建新文件        │
     
a   添加    │文本          │有就打建新
     
r+  /   │不限制        │            │
     
w+  /   │不限制        │建新文件        │
     
a+  /添加不限制        │有就打建新
     
└──┴────┴───────┴────────┘
     
可加的后缀为tb。加b表示文件以二制形式行操作,t必要使用
     
: ┌──────────────────┐
         
#include<stdio.h>                  
         
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)
streamn字符存入string
int   fputs(char *string,FILE *stream)
字符串string入流stream
int   fread(void *ptr,int size,int nitems,FILE *stream)
streamnitems
      
size的字符串存入ptr
int   fwrite(void *ptr,int size,int nitems,FILE *stream)
向流streamnitems
      
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中取得
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移到文件开头
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文件是无冲的.bufsize参数是被忽略的.入操作直接
     
      ,出操作立即把到文件中.                      │
     
└───┴───────────────────────────────┘
int   fclose(FILE *stream)
关闭流,可以是文件或设备(例如LPT1)
int   fcloseall()         
关闭所有除stdinstdout外的流
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


接口子程序,所在函库为:dos.hbios.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文本的.

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; /*簇扇区数*/  │
      
}                                    
      
└───────────────────┘
ch
ar far *getdta()             取磁盘转换地址DTA
void      setdta(char far *dta)
置磁盘转换地址DTA
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,u
nsigned 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)
      
本函DOS0x21用一指定的DOS,的寄存器
      
存于结构inregs,行完后函数将返回的寄存器存于结构outregs
int   intdosx(union REGS *inregs,union REGS *outregs,struct SREGS *segregs)
      
本函DOS0x21用一指定的DOS,的寄存器
      
存于结构inregssegregs,行完后函数将返回的寄存器存于结构outregs
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)
valuesegment:offset
void  pokeb(int segment,int offset,int value)
valuesegment:offset
int   randbrd(struct fcb *fcbptr,int reccnt)
      
利用打fcbptr所指的FCBreccnt记录.
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表示打开检验
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
或多.读开始的扇headtracksector出。
         
区号nsects出。把每512buffer
        3
从内读数到一或多始的扇headtracksector
         
出。扇区号nsects出。所写数据在buffer中,每扇512
        4
检验或多始扇headtracksector出。扇区号
          nsects
出。
        5
格式化一磁道,磁道由headtrack出。buffer指向在指定track
         
的扇器的一表。
         
以下cmd只允用于XTAT微机:
        6
格式化一磁道,置坏扇志。
        7
格式化指定磁道上的驱动开头
        8
返回驱动参数驱动器信息返回buffer(以四表示)
        9
初始化一对驱动器特性。
       10
行一,每5124外字
       11
行一,每区写5124外字
       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
出操作失

int   biodquip()
检查设备,函返回一字每一位表示一信息,如下:
      
15 打印机
      
14 打印机
      
13 未使用
      
12 接游I/O
      
11 RS232端口
      
8 未使用
      
7 盘号
      
6 盘号,
              00
1驱动,012驱动,103驱动,114驱动
      
5 初始化
      
4 示器模式
              00
未使用,0140x25BW彩色示卡
              10
80x25BW彩色示卡,1180x25BW示卡
      
3
      
2 机存器容量,0016K,0132K,1048K,1164K
      
1 浮点共用理器
      
0

int   bioskey(int cmd)
本函行各种键盘操作,由cmd确定操作。
       cmd
以下
       0
返回敲键盘上的下一。若低80,ASCII字符;若低80,
        
返回充了的键盘
       1
测试键盘是否可用于。返回0表示可用;否返回下一次敲
        
本身一直保持由下次用具的cmd值为0bioskey所返回的
       2
返回前的键盘状态,由返回整的每一位表示,下表:
        ┌──┬───────────┬───────────┐

       
0             │1             │
       
├──┼───────────┼───────────┤
       
              │写状              │
       
写状              │写状              │
       
NumLock灯亮标状态NumLock灯熄
       
ScrollLock灯亮        │ScrollLock灯熄        │
       
Alt按下               │Alt未按下             │
       
Ctrl按下              │Ctrl未按下            │
       
Shift按下           │Shift未按下         │
       
Shift按下           │Shift未按下         │
       
└──┴───────────┴───────────┘
int   biosmemory()
返回存大小,K为单.
int   biosprint(int cmd,int byte,int port)
控制打印机的/.
      
port打印机,0LPT1,1LPT2,2LPT3
       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)
前的(countrycode02)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.hmem.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制一ndestin.如果源和目标块重迭,则选择复制方向,
 
以例正确地制覆盖的字.
memmove
memcpy相同.
memset
s的所有字置于字ch.s度由n.
memcmp
正好是n节长两个字符串s1s2.些函按无符字符比,因此,
  memcmp("0xFF","/x 7F ",1)
返回大于0.
memicmp
s1s2的前n,不管字符大或小.
memccpy
source制字destin.制一束就生下列任一情:
  (1)
字符ch选复制到destin.
  (2)n
制到destin.
memchr
字符chs的前n.
返回:memmovememcpy返回destin
       memset
返回s
       memcmp
memicmp─┬─s1<s2返回小于0
                        ├─
s1=s2返回等于0
                        └─
s1>s2返回大于0
       memccpy
制了ch,返回直接跟ch的在destin中的字的一;
             
返回NULL
       memchr
返回在s中首先出ch的一;如果在s中不出ch,就返回NULL.

void  movedata(int segsrc,int offsrc,
               int segdest,int offdest,
               unsigned numbytes)
      
本函数将源地址(segsrc:offsrc)numbytes
      
制到目地址(segdest:offdest)
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)
       
字符串s1s2的大小,返回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)
       
字符串s1s2,返回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)
       
字符串s1s2中的前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)
       
字符串s1s2中的前maxlen字符
char   strnset(char *s,int ch,size_t n)
       
字符串s的前n字符置于ch
char   strpbrk(const char *s1,const char *s2)
       
描字符串s1,返回在s1s2中均有的字符个数
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,返回在s1s2中均有的字符个数
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.halloc.hmalloc.hstdlib.hprocess.h
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)
分配nelemelsize存空
       
返回所分配存的指
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)
          
堆分配unitsunitsz存空,返回所分配存的指
void  *farmalloc(unsigned long size)
分配size存空,
      
返回分配的存指
void   farfree(void far *block)
放先前堆分配的存空,
       
所要放的存的指针为block
void far *farrealloc(void far *block,unsigned long newsize)
已分配的
          
存的大小,block已分配有域的指,newzie新的,返回分配好
          
存指

时间日期函,库为time.hdos.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; /*是否采用夏,采用*/│
}                                          
└──────────────────────┘
日期结构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)
           
结构time2time1时间差距(以秒为单)
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 凌晨起到在的秒
void       unixtodos(long utime,struct date *dateptr,struct time *timeptr)
           
本函数将自格林威治时间 1970 1 1 凌晨起到在的秒utime转换
            DOS
格式保存于用所指的结构dateptrtimeptr
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所返回的时间)
           
算机中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值