C語言函式

C語言函式

C語言函式是一種函式,用來編譯C語言,一般包括字元庫函式,數學函式,目錄函式,進程函式,診斷函式,操作函式等。

基本介紹

  • 中文名:C語言函式
  • 外文名:C language function
  • 用途:編譯C語言
  • 所在函式館ctype.h
  • 性質:函式
字元庫函式,數學函式,目錄函式,進程函式,診斷函式,接口子程式,操作函式,時間日期函式,

字元庫函式

所在函式館為【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是作廢字元(0x7F)或普通控制字元(0x00-0x1F)
返回非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-0x1F)返回非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) 若ch是16進制數('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.hstdio.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*2n中x的值,n存貯在eptr中
double ldexp(double value,int exp); 返回value*2exp的值
double log(double x) 返回logex的值
double log10(double x) 返回log10x的值
double pow(double x,double y) 返回x^y的值
double pow10(int p) 返回10^p的值
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)值,y的x為弧度
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 檔案 ┃

進程函式

所在函式館為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函式族中,後綴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.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.h、conio.h、stat.h、dos.hstdio.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]),本函式是用來控制輸入/輸出設備的
int (*ssignal(int sig,int(*action)())()執行軟體信號(沒必要使用)
int gsignal(int sig) 執行軟體信號(沒必要使用)
int _open(char *pathname,int access)為讀或寫打開一個檔案,按後按access來確定是讀檔案還是寫檔案

接口子程式

所在函式館為: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結構中.
char far *getdta() 取磁碟轉換地址DTA
void setdta(char far *dta)設定磁碟轉換地址DTA
void getfat(int drive,fatinfo *fatblkp)
本函式返回指定驅動器drive(0=當前,1=A,2=B等)的檔案分配表信息並存入結構fatblkp中
void getfatd(struct fatinfo *fatblkp) 本函式返回當前驅動器的檔案分配表信息,並存入結構fatblkp中
int bdos(int dosfun,unsigned 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)
本函式執行DOS中斷0x21來調用一個指定的DOS函式,用戶定義的暫存器值
存於結構inregs中,執行完後函式將返回的暫存器值存於結構outregs中
int intdosx(union REGS *inregs,union REGS *outregs,struct SREGS *segregs)
本函式執行DOS中斷0x21來調用一個指定的DOS函式,用戶定義的暫存器值
存於結構inregs和segregs中,執行完後函式將返回的暫存器值存於結構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) 將字value寫到segment:offset處
void pokeb(int segment,int offset,int value) 將位元組value寫到segment:offset處
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)函式把段暫存器的當前值放進結構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; /*錯誤場所*/ │
│} │
└──────────────┘

操作函式

所在函式館為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複製一個n位元組的塊到destin.如果源塊和目標塊重疊,則選擇複製方向,
以例正確地複製覆蓋的位元組.
memmove與memcpy相同.
memset將s的所有位元組置於位元組ch中.s數組的長度由n給出.
memcmp比較正好是n位元組長的兩個字元串s1和s2.些函式按無符號字元比較位元組,因此,
memcmp("0xFF","\x7F",1)返回值大於0.
memicmp比較s1和s2的前n個位元組,不管字元大寫或小寫.
memccpy從source複製位元組到destin.複製一結束就發生下列任一情況:
(1)字元ch首選複製到destin.
(2)n個位元組已複製到destin.
memchr對字元ch檢索s數組的前n個位元組.
返回值:memmove和memcpy返回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)
比較字元串s1與s2的大小,並返回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)
比較字元串s1和s2,並返回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)
比較字元串s1與s2中的前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)
比較字元串s1與s2中的前maxlen個字元
char strnset(char *s,int ch,size_t n)
將字元串s的前n個字元置於ch中
char strpbrk(const char *s1,const char *s2)
掃描字元串s1,並返回在s1和s2中均有的字元個數
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,並返回在s1和s2中均有的字元個數
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.h、alloc.h、malloc.h、stdlib.h、process.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)分配nelem個長度為elsize的記憶體空間
並返回所分配記憶體的指針
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)
從遠堆分配units個長度為unitsz的記憶體空間,並返回所分配記憶體的指針
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)
計算結構time2和time1之間的時間差距(以秒為單位)
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格式並保存於用戶所指的結構dateptr和timeptr中
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所返回的時間)
寫入計算機中.

相關詞條

熱門詞條

聯絡我們