0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

庫(kù)函數(shù)頭文件大全

PoisonApple ? 來(lái)源:網(wǎng)絡(luò)整理 ? 2018-03-02 10:46 ? 次閱讀

庫(kù)函數(shù)

庫(kù)函數(shù)是把函數(shù)放到庫(kù)里,供別人使用的一種方式。方法是把一些常用到的函數(shù)編完放到一個(gè)文件里,供不同的人進(jìn)行調(diào)用。調(diào)用的時(shí)候把它所在的文件名用#include《》加到里面就可以了。一般是放到lib文件里的。

頭文件

C語(yǔ)言家族程序中,頭文件被大量使用。一般而言,每個(gè)C++/C程序通常由頭文件和定義文件組成。頭文件作為一種包含功能函數(shù)、數(shù)據(jù)接口聲明的載體文件,主要用于保存程序的聲明,而定義文件用于保存程序的實(shí)現(xiàn) 。 .c就是你寫(xiě)的程序文件。

庫(kù)函數(shù)頭文件大全

庫(kù)函數(shù)頭文件大全

C/C++頭文件一覽

C、傳統(tǒng) C++

#include 《assert.h》//設(shè)定插入點(diǎn)

#include 《ctype.h》 //字符處理

#include 《errno.h》 //定義錯(cuò)誤碼

#include 《float.h》 //浮點(diǎn)數(shù)處理

#include 《fstream.h》 //文件輸入/輸出

#include 《iomanip.h》 //參數(shù)化輸入/輸出

#include 《iostream.h》//數(shù)據(jù)流輸入/輸出

#include 《limits.h》//定義各種數(shù)據(jù)類(lèi)型最值常量

#include 《locale.h》//定義本地化函數(shù)

#include 《math.h》//定義數(shù)學(xué)函數(shù)

#include 《stdio.h》 //定義輸入/輸出函數(shù)

#include 《stdlib.h》//定義雜項(xiàng)函數(shù)及內(nèi)存分配函數(shù)

#include 《string.h》//字符串處理

#include 《strstrea.h》//基于數(shù)組的輸入/輸出

#include 《time.h》//定義關(guān)于時(shí)間的函數(shù)

#include 《wchar.h》 //寬字符處理及輸入/輸出

#include 《wctype.h》//寬字符分類(lèi)

//////////////////////////////////////////////////////////////////////////

標(biāo)準(zhǔn) C++(同上的不再注釋?zhuān)?/strong>

#include 《algorithm》 //STL 通用算法

#include 《bitset》//STL 位集容器

#include 《cctype》

#include 《cerrno》

#include 《clocale》

#include 《cmath》

#include 《complex》 //復(fù)數(shù)類(lèi)

#include 《cstdio》

#include 《cstdlib》

#include 《cstring》

#include 《ctime》

#include 《deque》 //STL 雙端隊(duì)列容器

#include 《exception》 //異常處理類(lèi)

#include 《fstream》

#include 《functional》//STL 定義運(yùn)算函數(shù)(代替運(yùn)算符)

#include 《limits》

#include 《list》//STL 線性列表容器

#include 《map》 //STL 映射容器

#include 《iomanip》

#include 《ios》 //基本輸入/輸出支持

#include 《iosfwd》//輸入/輸出系統(tǒng)使用的前置聲明

#include 《iostream》

#include 《istream》 //基本輸入流

#include 《ostream》 //基本輸出流

#include 《queue》 //STL 隊(duì)列容器

#include 《set》 //STL 集合容器

#include 《sstream》 //基于字符串的流

#include 《stack》 //STL 堆棧容器

#include 《stdexcept》 //標(biāo)準(zhǔn)異常類(lèi)

#include 《streambuf》 //底層輸入/輸出支持

#include 《string》//字符串類(lèi)

#include 《utility》 //STL 通用模板類(lèi)

#include 《vector》//STL 動(dòng)態(tài)數(shù)組容器

#include 《cwchar》

#include 《cwctype》

using namespace std;

//////////////////////////////////////////////////////////////////////////

C99 增加

#include 《complex.h》 //復(fù)數(shù)處理

#include 《fenv.h》//浮點(diǎn)環(huán)境

#include 《inttypes.h》//整數(shù)格式轉(zhuǎn)換

#include 《stdbool.h》 //布爾環(huán)境

#include 《stdint.h》//整型環(huán)境

#include 《tgmath.h》//通用類(lèi)型數(shù)學(xué)宏

C頭文件大全

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

分類(lèi)函數(shù),所在函數(shù)庫(kù)為ctype.h

int isalpha(int ch) 若ch是字母(‘A’-‘Z’,‘a(chǎn)’-‘z’)返回非0值,否則返回0

int isalnum(int ch) 若ch是字母(‘A’-‘Z’,‘a(chǎn)’-‘z’)或數(shù)字(‘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是數(shù)字(‘0’-‘9’)返回非0值,否則返回0

int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否則返回0

int islower(int ch) 若ch是小寫(xiě)字母(‘a(chǎn)’-‘z’)返回非0值,否則返回0

int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否則返回0

int ispunct(int ch) 若ch是標(biāo)點(diǎn)字符(0x00-0x1F)返回非0值,否則返回0

int isspace(int ch) 若ch是空格(‘ ’),水平制表符(‘\t’),回車(chē)符(‘\r’), 走紙換行(‘\f’),垂直制表符(‘\v’),換行符(‘\n’)返回非0值,否則返回0

int isupper(int ch) 若ch是大寫(xiě)字母(‘A’-‘Z’)返回非0值,否則返回0

int isxdigit(int ch) 若ch是16進(jìn)制數(shù)(‘0’-‘9’,‘A’-‘F’,‘a(chǎn)’-‘f’)返回非0值, 否則返回0

int tolower(int ch) 若ch是大寫(xiě)字母(‘A’-‘Z’)返回相應(yīng)的小寫(xiě)字母(‘a(chǎn)’-‘z’)

int toupper(int ch) 若ch是小寫(xiě)字母(‘a(chǎn)’-‘z’)返回相應(yīng)的大寫(xiě)字母(‘A’-‘Z’)

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

數(shù)學(xué)函數(shù),所在函數(shù)庫(kù)為math.h、stdlib.h、string.h、float.h

int abs(int i) 返回整型參數(shù)i的絕對(duì)值

double cabs(struct complex znum) 返回復(fù)數(shù)znum的絕對(duì)值

double fabs(double x) 返回雙精度參數(shù)x的絕對(duì)值

long labs(long n) 返回長(zhǎng)整型參數(shù)n的絕對(duì)值

double exp(double x) 返回指數(shù)函數(shù)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) 返回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)值,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) 返回直角三角形斜邊的長(zhǎng)度(z), x和y為直角邊的長(zhǎng)度,z2=x2+y2

double ceil(double x) 返回不小于x的最小整數(shù)

double floor(double x) 返回不大于x的最大整數(shù)

void srand(unsigned seed) 初始化隨機(jī)數(shù)發(fā)生器

int rand() 產(chǎn)生一個(gè)隨機(jī)數(shù)并返回這個(gè)數(shù)

double poly(double x,int n,double c[]) 從參數(shù)產(chǎn)生一個(gè)多項(xiàng)式

double modf(double value,double *iptr) 將雙精度數(shù)value分解成尾數(shù)和階

double fmod(double x,double y) 返回x/y的余數(shù)

double frexp(double value,int *eptr) 將雙精度數(shù)value分成尾數(shù)和階

double atof(char *nptr) 將字符串nptr轉(zhuǎn)換成浮點(diǎn)數(shù)并返回這個(gè)浮點(diǎn)數(shù)

double atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整數(shù)并返回這個(gè)整數(shù)

double atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長(zhǎng)整數(shù)并返回這個(gè)整數(shù)

char *ecvt(double value,int ndigit,int *decpt,int *sign) 將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign) 將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *gcvt(double value,int ndigit,char *buf) 將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針

char *ultoa(unsigned long value,char *string,int radix) 將無(wú)符號(hào)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)

char *ltoa(long value,char *string,int radix) 將長(zhǎng)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)

char *itoa(int value,char *string,int radix) 將整數(shù)value轉(zhuǎn)換成字符串存入string,radix為轉(zhuǎn)換時(shí)所用基數(shù)

double atof(char *nptr) 將字符串nptr轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0

int atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整型數(shù), 并返回這個(gè)數(shù),錯(cuò)誤返回0

long atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長(zhǎng)整型數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0

double strtod(char *str,char **endptr)將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),

long strtol(char *str,char **endptr,int base)將字符串str轉(zhuǎn)換成長(zhǎng)整型數(shù), 并返回這個(gè)數(shù),

int matherr(struct exception *e) 用戶(hù)修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)

double _matherr(_mexcep why,char *fun,double *arg1p, double *arg2p,double retval) 用戶(hù)修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)

unsigned int _clear87() 清除浮點(diǎn)狀態(tài)字并返回原來(lái)的浮點(diǎn)狀態(tài)

void _fpreset() 重新初使化浮點(diǎn)數(shù)學(xué)程序包

unsigned int _status87() 返回浮點(diǎn)狀態(tài)字

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

目錄函數(shù),所在函數(shù)庫(kù)為dir.h、dos.h

int chdir(char *path) 使指定的目錄path(如:“C:\\WPS”)變成當(dāng)前的工作目錄,成 功返回0

int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功返回0

pathname為指定的目錄名和文件名,如“C:\\WPS\\TXT”

ffblk為指定的保存文件信息的一個(gè)結(jié)構(gòu),定義如下:

┏━━━━━━━━━━━━━━━━━━┓

┃struct ffblk ┃

┃{ ┃

┃ char ff_reserved[21]; ┃

┃ char ff_attrib; ┃

┃ int ff_ftime; ┃

┃ int ff_fdate; ┃

┃ long ff_fsize; ┃

┃ char ff_name[13]; ┃

┃} ┃

┗━━━━━━━━━━━━━━━━━━┛

attrib為文件屬性,由以下字符代表

┏━━━━━━━━━┳━━━━━━━━┓

┃FA_RDONLY 只讀文件┃FA_LABEL 卷標(biāo)號(hào)┃

┃FA_HIDDEN 隱藏文件┃FA_DIREC 目錄 ┃

┃FA_SYSTEM 系統(tǒng)文件┃FA_ARCH 檔案 ┃

┗━━━━━━━━━┻━━━━━━━━┛

例:

struct ffblk ff;

findfirst(“*.wps”,&ff,F(xiàn)A_RDONLY);

int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,成功返回0

void fumerge(char *path,char *drive,char *dir,char *name,char *ext)

此函數(shù)通過(guò)盤(pán)符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),

文件名name(TC、WPS等),擴(kuò)展名ext(.EXE、.COM等)組成一個(gè)文件名

存與path中。

int fnsplit(char *path,char *drive,char *dir,char *name,char *ext)

此函數(shù)將文件名path分解成盤(pán)符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),

文件名name(TC、WPS等),擴(kuò)展名ext(.EXE、.COM等),并分別存入相應(yīng)的變量中。

int getcurdir(int drive,char *direc) 此函數(shù)返回指定驅(qū)動(dòng)器的當(dāng)前工作目錄名稱(chēng)

drive 指定的驅(qū)動(dòng)器(0=當(dāng)前,1=A,2=B,3=C等)

direc 保存指定驅(qū)動(dòng)器當(dāng)前工作路徑的變量 成功返回0

char *getcwd(char *buf,iint n) 此函數(shù)取當(dāng)前工作目錄并存入buf中,直到n個(gè)字

節(jié)長(zhǎng)為為止。錯(cuò)誤返回NULL

int getdisk() 取當(dāng)前正在使用的驅(qū)動(dòng)器,返回一個(gè)整數(shù)(0=A,1=B,2=C等)

int setdisk(int drive) 設(shè)置要使用的驅(qū)動(dòng)器drive(0=A,1=B,2=C等),

返回可使用驅(qū)動(dòng)器總數(shù)

int mkdir(char *pathname) 建立一個(gè)新的目錄pathname,成功返回0

int rmdir(char *pathname) 刪除一個(gè)目錄pathname,成功返回0

char *mktemp(char *template) 構(gòu)造一個(gè)當(dāng)前目錄上沒(méi)有的文件名并存于template中

char *searchpath(char *pathname) 利用MSDOS找出文件filename所在路徑,

,此函數(shù)使用DOS的PATH變量,未找到文件返回NULL

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

進(jìn)程函數(shù),所在函數(shù)庫(kù)為stdlib.h、process.h

void abort() 此函數(shù)通過(guò)調(diào)用具有出口代碼3的_exit寫(xiě)一個(gè)終止信息于stderr,

并異常終止程序。無(wú)返回值

int exec…裝入和運(yùn)行其它程序

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函數(shù)族裝入并運(yùn)行程序pathname,并將參數(shù)

arg0(arg1,arg2,argv[],envp[])傳遞給子程序,出錯(cuò)返回-1

在exec函數(shù)族中,后綴l、v、p、e添加到exec后,

所指定的函數(shù)將具有某種操作能力

有后綴 p時(shí),函數(shù)可以利用DOS的PATH變量查找子程序文件。

l時(shí),函數(shù)中被傳遞的參數(shù)個(gè)數(shù)固定。

v時(shí),函數(shù)中被傳遞的參數(shù)個(gè)數(shù)不固定。

e時(shí),函數(shù)傳遞指定參數(shù)envp,允許改變子進(jìn)程的環(huán)境,

無(wú)后綴e時(shí),子進(jìn)程使用當(dāng)前程序的環(huán)境。

void _exit(int status)終止當(dāng)前程序,但不清理現(xiàn)場(chǎng)

void exit(int status) 終止當(dāng)前程序,關(guān)閉所有文件,寫(xiě)緩沖區(qū)的輸出(等待輸出),

并調(diào)用任何寄存器的“出口函數(shù)”,無(wú)返回值

int spawn…運(yùn)行子程序

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函數(shù)族在mode模式下運(yùn)行子程序pathname,并將參數(shù)

arg0(arg1,arg2,argv[],envp[])傳遞給子程序。出錯(cuò)返回-1

mode為運(yùn)行模式

mode為 P_WAIT 表示在子程序運(yùn)行完后返回本程序

P_NOWAIT 表示在子程序運(yùn)行時(shí)同時(shí)運(yùn)行本程序(不可用)

P_OVERLAY表示在本程序退出后運(yùn)行子程序

在spawn函數(shù)族中,后綴l、v、p、e添加到spawn后,

所指定的函數(shù)將具有某種操作能力

有后綴 p時(shí), 函數(shù)利用DOS的PATH查找子程序文件

l時(shí), 函數(shù)傳遞的參數(shù)個(gè)數(shù)固定。

v時(shí), 函數(shù)傳遞的參數(shù)個(gè)數(shù)不固定。

e時(shí), 指定參數(shù)envp可以傳遞給子程序,允許改變子程序運(yùn)行環(huán)境。

當(dāng)無(wú)后綴e時(shí),子程序使用本程序的環(huán)境。

int system(char *command) 將MSDOS命令command傳遞給DOS執(zhí)行

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

轉(zhuǎn)換子程序,函數(shù)庫(kù)為math.h、stdlib.h、ctype.h、float.h

char *ecvt(double value,int ndigit,int *decpt,int *sign)

將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign)

將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *gcvt(double value,int ndigit,char *buf)

將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針

char *ultoa(unsigned long value,char *string,int radix)

將無(wú)符號(hào)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)

char *ltoa(long value,char *string,int radix)

將長(zhǎng)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)

char *itoa(int value,char *string,int radix)

將整數(shù)value轉(zhuǎn)換成字符串存入string,radix為轉(zhuǎn)換時(shí)所用基數(shù)

double atof(char *nptr) 將字符串nptr轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0

int atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整型數(shù), 并返回這個(gè)數(shù),錯(cuò)誤返回0

long atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長(zhǎng)整型數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0

double strtod(char *str,char **endptr)將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),

long strtol(char *str,char **endptr,int base)將字符串str轉(zhuǎn)換成長(zhǎng)整型數(shù),

并返回這個(gè)數(shù),

int toascii(int c) 返回c相應(yīng)的ASCII

int tolower(int ch) 若ch是大寫(xiě)字母(‘A’-‘Z’)返回相應(yīng)的小寫(xiě)字母(‘a(chǎn)’-‘z’)

int _tolower(int ch) 返回ch相應(yīng)的小寫(xiě)字母(‘a(chǎn)’-‘z’)

int toupper(int ch) 若ch是小寫(xiě)字母(‘a(chǎn)’-‘z’)返回相應(yīng)的大寫(xiě)字母(‘A’-‘Z’)

int _toupper(int ch) 返回ch相應(yīng)的大寫(xiě)字母(‘A’-‘Z’)

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

診斷函數(shù),所在函數(shù)庫(kù)為assert.h、math.h

void assert(int test) 一個(gè)擴(kuò)展成if語(yǔ)句那樣的宏,如果test測(cè)試失敗,

就顯示一個(gè)信息并異常終止程序,無(wú)返回值

void perror(char *string) 本函數(shù)將顯示最近一次的錯(cuò)誤信息,格式如下:

字符串string:錯(cuò)誤信息

char *strerror(char *str) 本函數(shù)返回最近一次的錯(cuò)誤信息,格式如下:

字符串str:錯(cuò)誤信息

int matherr(struct exception *e)

用戶(hù)修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)

double _matherr(_mexcep why,char *fun,double *arg1p,

double *arg2p,double retval)

用戶(hù)修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)

輸入輸出子程序,函數(shù)庫(kù)為io.h、conio.h、stat.h、dos.h、stdio.h、signal.h

int kbhit() 本函數(shù)返回最近所敲的按鍵

int fgetchar() 從控制臺(tái)(鍵盤(pán))讀一個(gè)字符,顯示在屏幕上

int getch() 從控制臺(tái)(鍵盤(pán))讀一個(gè)字符,不顯示在屏幕上

int putch() 向控制臺(tái)(鍵盤(pán))寫(xiě)一個(gè)字符

int getchar() 從控制臺(tái)(鍵盤(pán))讀一個(gè)字符,顯示在屏幕上

int putchar() 向控制臺(tái)(鍵盤(pán))寫(xiě)一個(gè)字符

int getche() 從控制臺(tái)(鍵盤(pán))讀一個(gè)字符,顯示在屏幕上

int ungetch(int c) 把字符c退回給控制臺(tái)(鍵盤(pán))

char *cgets(char *string) 從控制臺(tái)(鍵盤(pán))讀入字符串存于string中

int scanf(char *format[,argument…])從控制臺(tái)讀入一個(gè)字符串,分別對(duì)各個(gè)參數(shù)進(jìn)行

賦值,使用BIOS進(jìn)行輸出

int vscanf(char *format,Valist param)從控制臺(tái)讀入一個(gè)字符串,分別對(duì)各個(gè)參數(shù)進(jìn)行

賦值,使用BIOS進(jìn)行輸出,參數(shù)從Valist param中取得

int cscanf(char *format[,argument…])從控制臺(tái)讀入一個(gè)字符串,分別對(duì)各個(gè)參數(shù)進(jìn)行

賦值,直接對(duì)控制臺(tái)作操作,比如顯示器在顯示時(shí)字符時(shí)即為直接寫(xiě)頻方式顯示

int sscanf(char *string,char *format[,argument,…])通過(guò)字符串string,分別對(duì)各個(gè)

參數(shù)進(jìn)行賦值

int vsscanf(char *string,char *format,Vlist param)通過(guò)字符串string,分別對(duì)各個(gè)

參數(shù)進(jìn)行賦值,參數(shù)從Vlist param中取得

int puts(char *string) 發(fā)關(guān)一個(gè)字符串string給控制臺(tái)(顯示器),

使用BIOS進(jìn)行輸出

void cputs(char *string) 發(fā)送一個(gè)字符串string給控制臺(tái)(顯示器),

直接對(duì)控制臺(tái)作操作,比如顯示器即為直接寫(xiě)頻方式顯示

int printf(char *format[,argument,…]) 發(fā)送格式化字符串輸出給控制臺(tái)(顯示器)

使用BIOS進(jìn)行輸出

int vprintf(char *format,Valist param) 發(fā)送格式化字符串輸出給控制臺(tái)(顯示器)

使用BIOS進(jìn)行輸出,參數(shù)從Valist param中取得

int cprintf(char *format[,argument,…]) 發(fā)送格式化字符串輸出給控制臺(tái)(顯示器),

直接對(duì)控制臺(tái)作操作,比如顯示器即為直接寫(xiě)頻方式顯示

int vcprintf(char *format,Valist param)發(fā)送格式化字符串輸出給控制臺(tái)(顯示器),

直接對(duì)控制臺(tái)作操作,比如顯示器即為直接寫(xiě)頻方式顯示,

參數(shù)從Valist param中取得

int sprintf(char *string,char *format[,argument,…])

將字符串string的內(nèi)容重新寫(xiě)為格式化后的字符串

int vsprintf(char *string,char *format,Valist param)

將字符串string的內(nèi)容重新寫(xiě)為格式化后的字符串,參數(shù)從Valist param中取得

int rename(char *oldname,char *newname)將文件oldname的名稱(chēng)改為newname

int ioctl(int handle,int cmd[,int *argdx,int argcx])

本函數(shù)是用來(lái)控制輸入/輸出設(shè)備的,請(qǐng)見(jiàn)下表:

┌───┬────────────────────────────┐

│cmd值 │功能 │

├───┼────────────────────────────┤

│ 0 │取出設(shè)備信息 │

│ 1 │設(shè)置設(shè)備信息 │

│ 2 │把a(bǔ)rgcx字節(jié)讀入由argdx所指的地址 │

│ 3 │在argdx所指的地址寫(xiě)argcx字節(jié) │

│ 4 │除把handle當(dāng)作設(shè)備號(hào)(0=當(dāng)前,1=A,等)之外,均和cmd=2時(shí)一樣 │

│ 5 │除把handle當(dāng)作設(shè)備號(hào)(0=當(dāng)前,1=A,等)之外,均和cmd=3時(shí)一樣 │

│ 6 │取輸入狀態(tài) │

│ 7 │取輸出狀態(tài) │

│ 8 │測(cè)試可換性;只對(duì)于DOS 3.x │

│ 11 │置分享沖突的重算計(jì)數(shù);只對(duì)DOS 3.x │

└───┴────────────────────────────┘

int (*ssignal(int sig,int(*action)())()執(zhí)行軟件信號(hào)(沒(méi)必要使用)

int gsignal(int sig) 執(zhí)行軟件信號(hào)(沒(méi)必要使用)

int _open(char *pathname,int access)為讀或?qū)懘蜷_(kāi)一個(gè)文件,

按后按access來(lái)確定是讀文件還是寫(xiě)文件,access值見(jiàn)下表

┌──────┬────────────────────┐

│access值 │意義 │

├──────┼────────────────────┤

│O_RDONLY │讀文件 │

│O_WRONLY │寫(xiě)文件 │

│O_RDWR │即讀也寫(xiě) │

│O_NOINHERIT │若文件沒(méi)有傳遞給子程序,則被包含 │

│O_DENYALL │只允許當(dāng)前處理必須存取的文件 │

│O_DENYWRITE │只允許從任何其它打開(kāi)的文件讀 │

│O_DENYREAD │只允許從任何其它打開(kāi)的文件寫(xiě) │

│O_DENYNONE │允許其它共享打開(kāi)的文件 │

└──────┴────────────────────┘

int open(char *pathname,int access[,int permiss])為讀或?qū)懘蜷_(kāi)一個(gè)文件,

按后按access來(lái)確定是讀文件還是寫(xiě)文件,access值見(jiàn)下表

┌────┬────────────────────┐

│access值│意義 │

├────┼────────────────────┤

│O_RDONLY│讀文件 │

│O_WRONLY│寫(xiě)文件 │

│O_RDWR │即讀也寫(xiě) │

│O_NDELAY│沒(méi)有使用;對(duì)UNIX系統(tǒng)兼容 │

│O_APPEND│即讀也寫(xiě),但每次寫(xiě)總是在文件尾添加 │

│O_CREAT │若文件存在,此標(biāo)志無(wú)用;若不存在,建新文件 │

│O_TRUNC │若文件存在,則長(zhǎng)度被截為0,屬性不變 │

│O_EXCL │未用;對(duì)UNIX系統(tǒng)兼容 │

│O_BINARY│此標(biāo)志可顯示地給出以二進(jìn)制方式打開(kāi)文件 │

│O_TEXT │此標(biāo)志可用于顯示地給出以文本方式打開(kāi)文件│

└────┴────────────────────┘

permiss為文件屬性,可為以下值:

S_IWRITE允許寫(xiě) S_IREAD允許讀 S_IREAD|S_IWRITE允許讀、寫(xiě)

int creat(char *filename,int permiss) 建立一個(gè)新文件filename,并設(shè)定

讀寫(xiě)性。permiss為文件讀寫(xiě)性,可以為以下值

S_IWRITE允許寫(xiě) S_IREAD允許讀 S_IREAD|S_IWRITE允許讀、寫(xiě)

int _creat(char *filename,int attrib) 建立一個(gè)新文件filename,并設(shè)定文件

屬性。attrib為文件屬性,可以為以下值

FA_RDONLY只讀 FA_HIDDEN隱藏 FA_SYSTEM系統(tǒng)

int creatnew(char *filenamt,int attrib) 建立一個(gè)新文件filename,并設(shè)定文件

屬性。attrib為文件屬性,可以為以下值

FA_RDONLY只讀 FA_HIDDEN隱藏 FA_SYSTEM系統(tǒng)

int creattemp(char *filenamt,int attrib) 建立一個(gè)新文件filename,并設(shè)定文件

屬性。attrib為文件屬性,可以為以下值

FA_RDONLY只讀 FA_HIDDEN隱藏 FA_SYSTEM系統(tǒng)

int read(int handle,void *buf,int nbyte)從文件號(hào)為handle的文件中讀nbyte個(gè)字符

存入buf中

int _read(int handle,void *buf,int nbyte)從文件號(hào)為handle的文件中讀nbyte個(gè)字符

存入buf中,直接調(diào)用MSDOS進(jìn)行操作。

int write(int handle,void *buf,int nbyte)將buf中的nbyte個(gè)字符寫(xiě)入文件號(hào)

為handle的文件中

int _write(int handle,void *buf,int nbyte)將buf中的nbyte個(gè)字符寫(xiě)入文件號(hào)

為handle的文件中

int dup(int handle) 復(fù)制一個(gè)文件處理指針handle,返回這個(gè)指針

int dup2(int handle,int newhandle) 復(fù)制一個(gè)文件處理指針handle到newhandle

int eof(int *handle)檢查文件是否結(jié)束,結(jié)束返回1,否則返回0

long filelength(int handle) 返回文件長(zhǎng)度,handle為文件號(hào)

int setmode(int handle,unsigned mode)本函數(shù)用來(lái)設(shè)定文件號(hào)為handle的文件的打

開(kāi)方式

int getftime(int handle,struct ftime *ftime) 讀取文件號(hào)為handle的文件的時(shí)間,

并將文件時(shí)間存于ftime結(jié)構(gòu)中,成功返回0,ftime結(jié)構(gòu)如下:

┌─────────────────┐

│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; │

│} │

└─────────────────┘

int setftime(int handle,struct ftime *ftime) 重寫(xiě)文件號(hào)為handle的文件時(shí)間,

新時(shí)間在結(jié)構(gòu)ftime中。成功返回0.結(jié)構(gòu)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; │

│} │

└─────────────────┘

long lseek(int handle,long offset,int fromwhere) 本函數(shù)將文件號(hào)為handle的文件

的指針移到fromwhere后的第offset個(gè)字節(jié)處。

SEEK_SET 文件開(kāi)關(guān) SEEK_CUR 當(dāng)前位置 SEEK_END 文件尾

long tell(int handle) 本函數(shù)返回文件號(hào)為handle的文件指針,以字節(jié)表示

int isatty(int handle)本函數(shù)用來(lái)取設(shè)備handle的類(lèi)型

int lock(int handle,long offset,long length) 對(duì)文件共享作封鎖

int unlock(int handle,long offset,long length) 打開(kāi)對(duì)文件共享的封鎖

int close(int handle) 關(guān)閉handle所表示的文件處理,handle是從_creat、creat、

creatnew、creattemp、dup、dup2、_open、open中的一個(gè)處調(diào)用獲得的文件處理

成功返回0否則返回-1,可用于UNIX系統(tǒng)

int _close(int handle) 關(guān)閉handle所表示的文件處理,handle是從_creat、creat、

creatnew、creattemp、dup、dup2、_open、open中的一個(gè)處調(diào)用獲得的文件處理

成功返回0否則返回-1,只能用于MSDOS系統(tǒng)

FILE *fopen(char *filename,char *type) 打開(kāi)一個(gè)文件filename,打開(kāi)方式為type,

并返回這個(gè)文件指針,type可為以下字符串加上后綴

┌──┬────┬───────┬────────┐

│type│讀寫(xiě)性 │文本/2進(jìn)制文件│建新/打開(kāi)舊文件 │

├──┼────┼───────┼────────┤

│r │讀 │文本 │打開(kāi)舊的文件 │

│w │寫(xiě) │文本 │建新文件 │

│a │添加 │文本 │有就打開(kāi)無(wú)則建新│

│r+ │讀/寫(xiě) │不限制 │打開(kāi) │

│w+ │讀/寫(xiě) │不限制 │建新文件 │

│a+ │讀/添加 │不限制 │有就打開(kāi)無(wú)則建新│

└──┴────┴───────┴────────┘

可加的后綴為t、b。加b表示文件以二進(jìn)制形式進(jìn)行操作,t沒(méi)必要使用

例: ┌──────────────────┐

│#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,F(xiàn)ILE *stream)

int getc(FILE *stream) 從流stream中讀一個(gè)字符,并返回這個(gè)字符

int putc(int ch,F(xiàn)ILE *stream)向流stream寫(xiě)入一個(gè)字符ch

int getw(FILE *stream) 從流stream讀入一個(gè)整數(shù),錯(cuò)誤返回EOF

int putw(int w,F(xiàn)ILE *stream)向流stream寫(xiě)入一個(gè)整數(shù)

int ungetc(char c,F(xiàn)ILE *stream) 把字符c退回給流stream,下一次讀進(jìn)的字符將是c

int fgetc(FILE *stream) 從流stream處讀一個(gè)字符,并返回這個(gè)字符

int fputc(int ch,F(xiàn)ILE *stream) 將字符ch寫(xiě)入流stream中

char *fgets(char *string,int n,F(xiàn)ILE *stream) 從流stream中讀n個(gè)字符存入string中

int fputs(char *string,F(xiàn)ILE *stream) 將字符串string寫(xiě)入流stream中

int fread(void *ptr,int size,int nitems,F(xiàn)ILE *stream) 從流stream中讀入nitems

個(gè)長(zhǎng)度為size的字符串存入ptr中

int fwrite(void *ptr,int size,int nitems,F(xiàn)ILE *stream) 向流stream中寫(xiě)入nitems

個(gè)長(zhǎng)度為size的字符串,字符串在ptr中

int fscanf(FILE *stream,char *format[,argument,…]) 以格式化形式從流stream中

讀入一個(gè)字符串

int vfscanf(FILE *stream,char *format,Valist param) 以格式化形式從流stream中

讀入一個(gè)字符串,參數(shù)從Valist param中取得

int fprintf(FILE *stream,char *format[,argument,…]) 以格式化形式將一個(gè)字符

串寫(xiě)給指定的流stream

int vfprintf(FILE *stream,char *format,Valist param) 以格式化形式將一個(gè)字符

串寫(xiě)給指定的流stream,參數(shù)從Valist param中取得

int fseek(FILE *stream,long offset,int fromwhere) 函數(shù)把文件指針移到fromwhere

所指位置的向后offset個(gè)字節(jié)處,fromwhere可以為以下值:

SEEK_SET 文件開(kāi)關(guān) SEEK_CUR 當(dāng)前位置 SEEK_END 文件尾

long ftell(FILE *stream) 函數(shù)返回定位在stream中的當(dāng)前文件指針位置,以字節(jié)表示

int rewind(FILE *stream) 將當(dāng)前文件指針stream移到文件開(kāi)頭

int feof(FILE *stream) 檢測(cè)流stream上的文件指針是否在結(jié)束位置

int fileno(FILE *stream) 取流stream上的文件處理,并返回文件處理

int ferror(FILE *stream) 檢測(cè)流stream上是否有讀寫(xiě)錯(cuò)誤,如有錯(cuò)誤就返回1

void clearerr(FILE *stream) 清除流stream上的讀寫(xiě)錯(cuò)誤

void setbuf(FILE *stream,char *buf) 給流stream指定一個(gè)緩沖區(qū)buf

void setvbuf(FILE *stream,char *buf,int type,unsigned size)

給流stream指定一個(gè)緩沖區(qū)buf,大小為size,類(lèi)型為type,type的值見(jiàn)下表

┌───┬───────────────────────────────┐

│type值│意義 │

├───┼───────────────────────────────┤

│_IOFBF│文件是完全緩沖區(qū),當(dāng)緩沖區(qū)是空時(shí),下一個(gè)輸入操作將企圖填滿整個(gè)緩│

│ │沖區(qū)。在輸出時(shí),在把任何數(shù)據(jù)寫(xiě)到文件之前,將完全填充緩沖區(qū)。 │

│_IOLBF│文件是行緩沖區(qū)。當(dāng)緩沖區(qū)為空時(shí),下一個(gè)輸入操作將仍然企圖填整個(gè)緩│

│ │沖區(qū)。然而在輸出時(shí),每當(dāng)新行符寫(xiě)到文件,緩沖區(qū)就被清洗掉。 │

│_IONBF│文件是無(wú)緩沖的.buf和size參數(shù)是被忽略的。每個(gè)輸入操作將直接從文 │

│ │件讀,每個(gè)輸出操作將立即把數(shù)據(jù)寫(xiě)到文件中。 │

└───┴───────────────────────────────┘

int fclose(FILE *stream) 關(guān)閉一個(gè)流,可以是文件或設(shè)備(例如LPT1)

int fcloseall() 關(guān)閉所有除stdin或stdout外的流

int fflush(FILE *stream) 關(guān)閉一個(gè)流,并對(duì)緩沖區(qū)作處理

處理即對(duì)讀的流,將流內(nèi)內(nèi)容讀入緩沖區(qū);

對(duì)寫(xiě)的流,將緩沖區(qū)內(nèi)內(nèi)容寫(xiě)入流。成功返回0

int fflushall() 關(guān)閉所有流,并對(duì)流各自的緩沖區(qū)作處理

處理即對(duì)讀的流,將流內(nèi)內(nèi)容讀入緩沖區(qū);

對(duì)寫(xiě)的流,將緩沖區(qū)內(nèi)內(nèi)容寫(xiě)入流。成功返回0

int access(char *filename,int amode) 本函數(shù)檢查文件filename并返回文件的屬性,

函數(shù)將屬性存于amode中,amode由以下位的組合構(gòu)成

06可以讀、寫(xiě) 04可以讀 02可以寫(xiě) 01執(zhí)行(忽略的) 00文件存在

如果filename是一個(gè)目錄,函數(shù)將只確定目錄是否存在

函數(shù)執(zhí)行成功返回0,否則返回-1

int chmod(char *filename,int permiss) 本函數(shù)用于設(shè)定文件filename的屬性

permiss可以為以下值

S_IWRITE允許寫(xiě) S_IREAD允許讀 S_IREAD|S_IWRITE允許讀、寫(xiě)

int _chmod(char *filename,int func[,int attrib]);

本函數(shù)用于讀取或設(shè)定文件filename的屬性,

當(dāng)func=0時(shí),函數(shù)返回文件的屬性;當(dāng)func=1時(shí),函數(shù)設(shè)定文件的屬性

若為設(shè)定文件屬性,attrib可以為下列常數(shù)之一

FA_RDONLY只讀 FA_HIDDEN隱藏 FA_SYSTEM系統(tǒng)

接口子程序,所在函數(shù)庫(kù)為:dos.h、bios.h

unsigned sleep(unsigned seconds)暫停seconds微秒(百分之一秒)

int unlink(char *filename)刪除文件filename

unsigned FP_OFF(void far *farptr)本函數(shù)用來(lái)取遠(yuǎn)指針farptr的偏移量

unsigned FP_SEG(void far *farptr)本函數(shù)用來(lái)沒(méi)置遠(yuǎn)指針farptr的段值

void far *MK_FP(unsigned seg,unsigned off)根據(jù)段seg和偏移量off構(gòu)造一個(gè)far指針

unsigned getpsp()取程序段前綴的段地址,并返回這個(gè)地址

char *parsfnm(char *cmdline,struct fcb *fcbptr,int option)

函數(shù)分析一個(gè)字符串,通常,對(duì)一個(gè)文件名來(lái)說(shuō),是由cmdline所指的一個(gè)命令行。

文件名是放入一個(gè)FCB中作為一個(gè)驅(qū)動(dòng)器,文件名和擴(kuò)展名.FCB是由fcbptr所指

定的.option參數(shù)是DOS分析系統(tǒng)調(diào)用時(shí),AL文本的值。

int absread(int drive,int nsects,int sectno,void *buffer)本函數(shù)功能為讀特定的

磁盤(pán)扇區(qū),drive為驅(qū)動(dòng)器號(hào)(0=A,1=B等),nsects為要讀的扇區(qū)數(shù),sectno為開(kāi)始的邏

輯扇區(qū)號(hào),buffer為保存所讀數(shù)據(jù)的保存空間

int abswrite(int drive,int nsects,int sectno,void *buffer)本函數(shù)功能為寫(xiě)特定的

磁盤(pán)扇區(qū),drive為驅(qū)動(dòng)器號(hào)(0=A,1=B等),nsects為要寫(xiě)的扇區(qū)數(shù),sectno為開(kāi)始的邏

輯扇區(qū)號(hào),buffer為保存所寫(xiě)數(shù)據(jù)的所在空間

void getdfree(int drive,struct dfree *dfreep)本函數(shù)用來(lái)取磁盤(pán)的自由空間,

drive為磁盤(pán)號(hào)(0=當(dāng)前,1=A等)。函數(shù)將磁盤(pán)特性的由dfreep指向的dfree結(jié)構(gòu)中。

dfree結(jié)構(gòu)如下:

┌───────────────────┐

│struct dfree │

│{ │

│ unsigned df_avail; │

│ unsigned df_total; │

│ unsigned df_bsec; │

│ unsigned df_sclus; │

│} │

└───────────────────┘

char far *getdta() 取磁盤(pán)轉(zhuǎn)換地址DTA

void setdta(char far *dta)設(shè)置磁盤(pán)轉(zhuǎn)換地址DTA

void getfat(int drive,fatinfo *fatblkp)

本函數(shù)返回指定驅(qū)動(dòng)器drive(0=當(dāng)前,1=A,2=B等)的文件分配表信息

并存入結(jié)構(gòu)fatblkp中,結(jié)構(gòu)如下:

┌──────────────────┐

│struct fatinfo │

│{ │

│ char fi_sclus; │

│ char fi_fatid; │

│ int fi_nclus; │

│ int fi_bysec; │

│} │

└──────────────────┘

void getfatd(struct fatinfo *fatblkp) 本函數(shù)返回當(dāng)前驅(qū)動(dòng)器的文件分配表信息,

并存入結(jié)構(gòu)fatblkp中,結(jié)構(gòu)如下:

┌──────────────────┐

│struct fatinfo │

│{ │

│ char fi_sclus; │

│ char fi_fatid; │

│ int fi_nclus; │

│ int fi_bysec; │

│} │

└──────────────────┘

int bdos(int dosfun,unsigned dosdx,unsigned dosal)本函數(shù)對(duì)MSDOS系統(tǒng)進(jìn)行調(diào)用,

dosdx為寄存器dx的值,dosal為寄存器al的值,dosfun為功能號(hào)

int bdosptr(int dosfun,void *argument,unsiigned dosal)本函數(shù)對(duì)MSDOS系統(tǒng)進(jìn)行調(diào)用,

argument為寄存器dx的值,dosal為寄存器al的值,dosfun為功能號(hào)

int int86(int intr_num,union REGS *inregs,union REGS *outregs)

執(zhí)行intr_num號(hào)中斷,用戶(hù)定義的寄存器值存于結(jié)構(gòu)inregs中,

執(zhí)行完后將返回的寄存器值存于結(jié)構(gòu)outregs中。

int int86x(int intr_num,union REGS *inregs,union REGS *outregs,

struct SREGS *segregs)執(zhí)行intr_num號(hào)中斷,用戶(hù)定義的寄存器值存于

結(jié)構(gòu)inregs中和結(jié)構(gòu)segregs中,執(zhí)行完后將返回的寄存器值存于結(jié)構(gòu)outregs中。

int intdos(union REGS *inregs,union REGS *outregs)

本函數(shù)執(zhí)行DOS中斷0x21來(lái)調(diào)用一個(gè)指定的DOS函數(shù),用戶(hù)定義的寄存器值

存于結(jié)構(gòu)inregs中,執(zhí)行完后函數(shù)將返回的寄存器值存于結(jié)構(gòu)outregs中

int intdosx(union REGS *inregs,union REGS *outregs,struct SREGS *segregs)

本函數(shù)執(zhí)行DOS中斷0x21來(lái)調(diào)用一個(gè)指定的DOS函數(shù),用戶(hù)定義的寄存器值

存于結(jié)構(gòu)inregs和segregs中,執(zhí)行完后函數(shù)將返回的寄存器值存于結(jié)構(gòu)outregs中

void intr(int intr_num,struct REGPACK *preg)本函數(shù)中一個(gè)備用的8086軟件中斷接口

它能產(chǎn)生一個(gè)由參數(shù)intr_num指定的8086軟件中斷。函數(shù)在執(zhí)行軟件中斷前,

從結(jié)構(gòu)preg復(fù)制用戶(hù)定義的各寄存器值到各個(gè)寄存器。軟件中斷完成后,

函數(shù)將當(dāng)前各個(gè)寄存器的值復(fù)制到結(jié)構(gòu)preg中。參數(shù)如下:

intr_num 被執(zhí)行的中斷號(hào)

preg為保存用戶(hù)定義的寄存器值的結(jié)構(gòu),結(jié)構(gòu)如下

┌──────────────────────┐

│struct REGPACK │

│{ │

│ unsigned r_ax,r_bx,r_cx,r_dx; │

│ unsigned r_bp,r_si,r_di,r_ds,r_es,r_flags; │

│} │

└──────────────────────┘

函數(shù)執(zhí)行完后,將新的寄存器值存于結(jié)構(gòu)preg中

void keep(int status,int size)以status狀態(tài)返回MSDOS,但程序仍保留于內(nèi)存中,所占

用空間由size決定。

void ctrlbrk(int (*fptr)()) 設(shè)置中斷后的對(duì)中斷的處理程序。

void disable() 禁止發(fā)生中斷

void enable() 允許發(fā)生中斷

void geninterrupt(int intr_num)執(zhí)行由intr_num所指定的軟件中斷

void interrupt(* getvect(int intr_num))() 返回中斷號(hào)為intr_num的中斷處理程序,

例如: old_int_10h=getvect(0x10);

void setvect(int intr_num,void interrupt(* isr)()) 設(shè)置中斷號(hào)為intr_num的中

斷處理程序?yàn)閕sr,例如: setvect(0x10,new_int_10h);

void harderr(int (*fptr)()) 定義一個(gè)硬件錯(cuò)誤處理程序,

每當(dāng)出現(xiàn)錯(cuò)誤時(shí)就調(diào)用fptr所指的程序

void hardresume(int rescode)硬件錯(cuò)誤處理函數(shù)

void hardretn(int errcode) 硬件錯(cuò)誤處理函數(shù)

int inport(int prot) 從指定的輸入端口讀入一個(gè)字,并返回這個(gè)字

int inportb(int port)從指定的輸入端口讀入一個(gè)字節(jié),并返回這個(gè)字節(jié)

void outport(int port,int word) 將字word寫(xiě)入指定的輸出端口port

void outportb(int port,char byte)將字節(jié)byte寫(xiě)入指定的輸出端口port

int peek(int segment,unsigned offset) 函數(shù)返回segment:offset處的一個(gè)字

char peekb(int segment,unsigned offset)函數(shù)返回segment:offset處的一個(gè)字節(jié)

void poke(int segment,int offset,char value) 將字value寫(xiě)到segment:offset處

void pokeb(int segment,int offset,int value) 將字節(jié)value寫(xiě)到segment:offset處

int randbrd(struct fcb *fcbptr,int reccnt)

函數(shù)利用打開(kāi)fcbptr所指的FCB讀reccnt個(gè)記錄。

int randbwr(struct fcb *fcbptr,int reccnt)

函數(shù)將fcbptr所指的FCB中的reccnt個(gè)記錄寫(xiě)到磁盤(pán)上

void segread(struct SREGS *segtbl)函數(shù)把段寄存器的當(dāng)前值放進(jìn)結(jié)構(gòu)segtbl中

int getverify() 取檢驗(yàn)標(biāo)志的當(dāng)前狀態(tài)(0=檢驗(yàn)關(guān)閉,1=檢驗(yàn)打開(kāi))

void setverify(int value)設(shè)置當(dāng)前檢驗(yàn)狀態(tài),

value為0表示關(guān)閉檢驗(yàn),為1表示打開(kāi)檢驗(yàn)

int getcbrk()本函數(shù)返回控制中斷檢測(cè)的當(dāng)前設(shè)置

int setcbrk(int value)本函數(shù)用來(lái)設(shè)置控制中斷檢測(cè)為接通或斷開(kāi)

當(dāng)value=0時(shí),為斷開(kāi)檢測(cè)。當(dāng)value=1時(shí),為接開(kāi)檢測(cè)

int dosexterr(struct DOSERR *eblkp)取擴(kuò)展錯(cuò)誤。在DOS出現(xiàn)錯(cuò)誤后,此函數(shù)將擴(kuò)充的

錯(cuò)誤信息填入eblkp所指的DOSERR結(jié)構(gòu)中。該結(jié)構(gòu)定義如下:

┌──────────────┐

│struct DOSERR │

│{ │

│ int exterror; │

│ char class; │

│ char action; │

│ char locus; │

│} │

└──────────────┘

int bioscom(int cmd,char type,int port) 本函數(shù)負(fù)責(zé)對(duì)數(shù)據(jù)的通訊工作,

cmd可以為以下值:

0 置通訊參數(shù)為字節(jié)byte值 1 發(fā)送字符通過(guò)通訊線輸出

2 從通訊線接受字符 3 返回通訊的當(dāng)前狀態(tài)

庫(kù)函數(shù)頭文件大全

port為通訊端口,port=0時(shí)通訊端口為COM1,port=1時(shí)通訊端口為COM2,以此類(lèi)推

byte為傳送或接收數(shù)據(jù)時(shí)的參數(shù),為以下位的組合:

┌───┬─────┬───┬─────┬───┬─────┐

│byte值│意義 │byte值│意義 │byte值│意義 │ │

├───┼─────┼───┼─────┼───┼─────┤

│0x02 │7數(shù)據(jù)位 │0x03 │8數(shù)據(jù)位 │0x00 │1停止位 │ │

│0x04 │2停止位 │0x00 │無(wú)奇偶性 │0x08 │奇數(shù)奇偶性│ │

│0x18 │偶數(shù)奇偶性│0x00 │110波特 │0x20 │150波特 │ │

│0x40 │300波特 │0x60 │600波特 │0x80 │1200波特 │ │

│0xA0 │2400波特 │0xC0 │4800波特 │0xE0 │9600波特 │ │

└───┴─────┴───┴─────┴───┴─────┘

例如:0xE0|0x08|0x00|0x03即表示置通訊口為9600波特,奇數(shù)奇偶性,1停止位,

8數(shù)據(jù)位。

函數(shù)返回值為一個(gè)16位整數(shù),定義如下:

第15位 超時(shí)

第14位 傳送移位寄存器空

第13位 傳送固定寄存器空

第12位 中斷檢測(cè)

第11位 幀錯(cuò)誤

第10位 奇偶錯(cuò)誤

第 9位 過(guò)載運(yùn)行錯(cuò)誤

第 8位 數(shù)據(jù)就緒

第 7位 接收線信號(hào)檢測(cè)

第 6位 環(huán)形指示器

第 5位 數(shù)據(jù)設(shè)置就緒

第 4位 清除發(fā)送

第 3位 δ接收線信號(hào)檢測(cè)器

第 2位 下降邊環(huán)形檢測(cè)器

第 1位 δ數(shù)據(jù)設(shè)置就緒

第 0位 δ清除發(fā)送

int biosdisk(int cmd,int drive,int head,int track,

int sector,int nsects,void *buffer)

本函數(shù)用來(lái)對(duì)驅(qū)動(dòng)器作一定的操作,cmd為功能號(hào),

drive為驅(qū)動(dòng)器號(hào)(0=A,1=B,0x80=C,0x81=D,0x82=E等).cmd可為以下值:

0 重置軟磁盤(pán)系統(tǒng)。這強(qiáng)迫驅(qū)動(dòng)器控制器來(lái)執(zhí)行硬復(fù)位。忽略所有其它參數(shù)。

1 返回最后的硬盤(pán)操作狀態(tài)。忽略所有其它參數(shù)

2 讀一個(gè)或多個(gè)磁盤(pán)扇區(qū)到內(nèi)存。讀開(kāi)始的扇區(qū)由head、track、sector給出。

扇區(qū)號(hào)由nsects給出。把每個(gè)扇區(qū)512個(gè)字節(jié)的數(shù)據(jù)讀入buffer

3 從內(nèi)存讀數(shù)據(jù)寫(xiě)到一個(gè)或多個(gè)扇區(qū)。寫(xiě)開(kāi)始的扇區(qū)由head、track、sector

給出。扇區(qū)號(hào)由nsects給出。所寫(xiě)數(shù)據(jù)在buffer中,每扇區(qū)512個(gè)字節(jié)。

4 檢驗(yàn)一個(gè)或多個(gè)扇區(qū)。開(kāi)始扇區(qū)由head、track、sector給出。扇區(qū)號(hào)由

nsects給出。

5 格式化一個(gè)磁道,該磁道由head和track給出。buffer指向?qū)懺谥付╰rack上

的扇區(qū)磁頭器的一個(gè)表。

以下cmd值只允許用于XT或AT微機(jī)

6 格式化一個(gè)磁道,并置壞扇區(qū)標(biāo)志。

7 格式化指定磁道上的驅(qū)動(dòng)器開(kāi)頭。

8 返回當(dāng)前驅(qū)動(dòng)器參數(shù),驅(qū)動(dòng)器信息返回寫(xiě)在buffer中(以四個(gè)字節(jié)表示)。

9 初始化一對(duì)驅(qū)動(dòng)器特性。

10 執(zhí)行一個(gè)長(zhǎng)的讀,每個(gè)扇區(qū)讀512加4個(gè)額外字節(jié)

11 執(zhí)行一個(gè)長(zhǎng)的寫(xiě),每個(gè)扇區(qū)寫(xiě)512加4個(gè)額外字節(jié)

12 執(zhí)行一個(gè)磁盤(pán)查找

13 交替磁盤(pán)復(fù)位

14 讀扇區(qū)緩沖區(qū)

15 寫(xiě)扇區(qū)緩沖區(qū)

16 檢查指定的驅(qū)動(dòng)器是否就緒

17 復(fù)核驅(qū)動(dòng)器

18 控制器RAM診斷

19 驅(qū)動(dòng)器診斷

20 控制器內(nèi)部診

函數(shù)返回由下列位組合成的狀態(tài)字節(jié):

0x00 操作成功

0x01 壞的命令

0x02 地址標(biāo)記找不到

0x04 記錄找不到

0x05 重置失敗

0x07 驅(qū)動(dòng)參數(shù)活動(dòng)失敗

0x09 企圖DMA經(jīng)過(guò)64K界限

0x0B 檢查壞的磁盤(pán)標(biāo)記

0x10 壞的ECC在磁盤(pán)上讀

0x11 ECC校正的數(shù)據(jù)錯(cuò)誤(注意它不是錯(cuò)誤)

0x20 控制器失效

0x40 查找失敗

0x80 響應(yīng)的連接失敗

0xBB 出現(xiàn)無(wú)定義錯(cuò)誤

0xFF 讀出操作失敗

int biodquip() 檢查設(shè)備,函數(shù)返回一字節(jié),該字節(jié)每一位表示一個(gè)信息,如下:

第15位 打印機(jī)號(hào)

第14位 打印機(jī)號(hào)

第13位 未使用

第12位 連接游戲I/O

第11位 RS232端口號(hào)

第 8位 未使用

第 7位 軟磁盤(pán)號(hào)

第 6位 軟磁盤(pán)號(hào),

00為1號(hào)驅(qū)動(dòng)器,01為2號(hào)驅(qū)動(dòng)器,10為3號(hào)驅(qū)動(dòng)器,11為4號(hào)驅(qū)動(dòng)器

第 5位 初始化

第 4位 顯示器模式

00為未使用,01為40x25BW彩色顯示卡

10為80x25BW彩色顯示卡,11為80x25BW單色顯示卡

第 3位 母扦件

第 2位 隨機(jī)存貯器容量,00為16K,01為32K,10為48K,11為64K

第 1位 浮點(diǎn)共用處理器

第 0位 從軟磁盤(pán)引導(dǎo)

int bioskey(int cmd)本函數(shù)用來(lái)執(zhí)行各種鍵盤(pán)操作,由cmd確定操作。

cmd可為以下值:

0 返回敲鍵盤(pán)上的下一個(gè)鍵。若低8位為非0,即為ASCII字符;若低8位為0,

則返回?cái)U(kuò)充了的鍵盤(pán)代碼。

1 測(cè)試鍵盤(pán)是否可用于讀。返回0表示沒(méi)有鍵可用;否則返回下一次敲鍵之值。

敲鍵本身一直保持由下次調(diào)用具的cmd值為0的bioskey所返回的值。

2 返回當(dāng)前的鍵盤(pán)狀態(tài),由返回整數(shù)的每一個(gè)位表示,見(jiàn)下表:

┌──┬───────────┬───────────┐

│ 位 │為0時(shí)意義 │為1時(shí)意義 │

├──┼───────────┼───────────┤

│ 7 │插入狀態(tài) │改寫(xiě)狀態(tài) │

│ 6 │大寫(xiě)狀態(tài) │小寫(xiě)狀態(tài) │

│ 5 │數(shù)字狀態(tài),NumLock燈亮 │光標(biāo)狀態(tài),NumLock燈熄 │

│ 4 │ScrollLock燈亮 │ScrollLock燈熄 │

│ 3 │Alt按下 │Alt未按下 │

│ 2 │Ctrl按下 │Ctrl未按下 │

│ 1 │左Shift按下 │左Shift未按下 │

│ 0 │右Shift按下 │右Shift未按下 │

└──┴───────────┴───────────┘

int biosmemory()返回內(nèi)存大小,以K為單位。

int biosprint(int cmd,int byte,int port)控制打印機(jī)的輸入/輸出。

port為打印機(jī)號(hào),0為L(zhǎng)PT1,1為L(zhǎng)PT2,2為L(zhǎng)PT3等

cmd可以為以下值:

0 打印字符,將字符byte送到打印機(jī)

1 打印機(jī)端口初始化

2 讀打印機(jī)狀態(tài)

函數(shù)返回值由以下位值組成表示當(dāng)前打印機(jī)狀態(tài)

0x01 設(shè)備時(shí)間超時(shí)

0x08 輸入/輸出錯(cuò)誤

0x10 選擇的

0x20 走紙

0x40 認(rèn)可

0x80 不忙碌

int biostime(int cmd,long newtime)計(jì)時(shí)器控制,cmd為功能號(hào),可為以下值

0 函數(shù)返回計(jì)時(shí)器的當(dāng)前值

1 將計(jì)時(shí)器設(shè)為新值newtime

struct country *country(int countrycmode,struct country *countryp)

本函數(shù)用來(lái)控制某一國(guó)家的相關(guān)信息,如日期,時(shí)間,貨幣等。

若countryp=-1時(shí),當(dāng)前的國(guó)家置為countrycode值(必須為非0)。否則,由countryp

所指向的country結(jié)構(gòu)用下列的國(guó)家相關(guān)信息填充:

(1)當(dāng)前的國(guó)家(若countrycode為0或2)由countrycode所給定的國(guó)家。

結(jié)構(gòu)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 貨幣符號(hào)在數(shù)值前,中間無(wú)空格

1 貨幣符號(hào)在數(shù)值后,中間無(wú)空格

2 貨幣符號(hào)在數(shù)值前,中間有空格

3 貨幣符號(hào)在數(shù)值后,中間有空格

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

操作函數(shù),所在函數(shù)庫(kù)為string.h、mem.h

mem…操作存貯數(shù)組

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)

這些函數(shù),mem…系列的所有成員均操作存貯數(shù)組。在所有這些函數(shù)中,數(shù)組是n字節(jié)長(zhǎng)。

memcpy從source復(fù)制一個(gè)n字節(jié)的塊到destin.如果源塊和目標(biāo)塊重迭,則選擇復(fù)制方向,

以例正確地復(fù)制覆蓋的字節(jié)。

memmove與memcpy相同。

memset將s的所有字節(jié)置于字節(jié)ch中.s數(shù)組的長(zhǎng)度由n給出。

memcmp比較正好是n字節(jié)長(zhǎng)的兩個(gè)字符串s1和s2.些函數(shù)按無(wú)符號(hào)字符比較字節(jié),因此,

memcmp(“0xFF”,“\x7F”,1)返回值大于0.

memicmp比較s1和s2的前n個(gè)字節(jié),不管字符大寫(xiě)或小寫(xiě)。

memccpy從source復(fù)制字節(jié)到destin.復(fù)制一結(jié)束就發(fā)生下列任一情況:

(1)字符ch首選復(fù)制到destin.

(2)n個(gè)字節(jié)已復(fù)制到destin.

memchr對(duì)字符ch檢索s數(shù)組的前n個(gè)字節(jié)。

返回值:memmove和memcpy返回destin

memset返回s的值

memcmp和memicmp─┬─若s1《s2返回值小于0

├─若s1=s2返回值等于0

└─若s1》s2返回值大于0

memccpy若復(fù)制了ch,則返回直接跟隨ch的在destin中的字節(jié)的一個(gè)指針;

否則返回NULL

memchr返回在s中首先出現(xiàn)ch的一個(gè)指針;如果在s數(shù)組中不出現(xiàn)ch,就返回NULL.

void movedata(int segsrc,int offsrc,

int segdest,int offdest,

unsigned numbytes)

本函數(shù)將源地址(segsrc:offsrc)處的numbytes個(gè)字節(jié)

復(fù)制到目標(biāo)地址(segdest:offdest)

void movemem(void *source,void *destin,unsigned len)

本函數(shù)從source處復(fù)制一塊長(zhǎng)len字節(jié)的數(shù)據(jù)到destin.若源地址和目標(biāo)地址字符串

重迭,則選擇復(fù)制方向,以便正確的復(fù)制數(shù)據(jù)。

void setmem(void *addr,int len,char value)

本函數(shù)把a(bǔ)ddr所指的塊的第一個(gè)字節(jié)置于字節(jié)value中。

str…字符串操作函數(shù)

char stpcpy(char *dest,const char *src)

將字符串src復(fù)制到dest

char strcat(char *dest,const char *src)

將字符串src添加到dest末尾

char strchr(const char *s,int c)

檢索并返回字符c在字符串s中第一次出現(xiàn)的位置

int strcmp(const char *s1,const char *s2)

比較字符串s1與s2的大小,并返回s1-s2

char strcpy(char *dest,const char *src)

將字符串src復(fù)制到dest

size_t strcspn(const char *s1,const char *s2)

掃描s1,返回在s1中有,在s2中也有的字符個(gè)數(shù)

char strdup(const char *s)

將字符串s復(fù)制到最近建立的單元

int stricmp(const char *s1,const char *s2)

比較字符串s1和s2,并返回s1-s2

size_t strlen(const char *s)

返回字符串s的長(zhǎng)度

char strlwr(char *s)

將字符串s中的大寫(xiě)字母全部轉(zhuǎn)換成小寫(xiě)字母,并返回轉(zhuǎn)換后的字符串

char strncat(char *dest,const char *src,size_t maxlen)

將字符串src中最多maxlen個(gè)字符復(fù)制到字符串dest中

int strncmp(const char *s1,const char *s2,size_t maxlen)

比較字符串s1與s2中的前maxlen個(gè)字符

char strncpy(char *dest,const char *src,size_t maxlen)

復(fù)制src中的前maxlen個(gè)字符到dest中

int strnicmp(const char *s1,const char *s2,size_t maxlen)

比較字符串s1與s2中的前maxlen個(gè)字符

char strnset(char *s,int ch,size_t n)

將字符串s的前n個(gè)字符置于ch中

char strpbrk(const char *s1,const char *s2)

掃描字符串s1,并返回在s1和s2中均有的字符個(gè)數(shù)

char strrchr(const char *s,int c)

掃描最后出現(xiàn)一個(gè)給定字符c的一個(gè)字符串s

char strrev(char *s)

將字符串s中的字符全部顛倒順序重新排列,并返回排列后的字符串

char strset(char *s,int ch)

將一個(gè)字符串s中的所有字符置于一個(gè)給定的字符ch

size_t strspn(const char *s1,const char *s2)

掃描字符串s1,并返回在s1和s2中均有的字符個(gè)數(shù)

char strstr(const char *s1,const char *s2)

掃描字符串s2,并返回第一次出現(xiàn)s1的位置

char strtok(char *s1,const char *s2)

檢索字符串s1,該字符串s1是由字符串s2中定義的定界符所分隔

char strupr(char *s)

將字符串s中的小寫(xiě)字母全部轉(zhuǎn)換成大寫(xiě)字母,并返回轉(zhuǎn)換后的字符串

存貯分配子程序,所在函數(shù)庫(kù)為dos.h、alloc.h、malloc.h、stdlib.h、process.h

int allocmem(unsigned size,unsigned *seg)利用DOS分配空閑的內(nèi)存,

size為分配內(nèi)存大小,seg為分配后的內(nèi)存指針

int freemem(unsigned seg)釋放先前由allocmem分配的內(nèi)存,seg為指定的內(nèi)存指針

int setblock(int seg,int newsize)本函數(shù)用來(lái)修改所分配的內(nèi)存長(zhǎng)度,

seg為已分配內(nèi)存的內(nèi)存指針,newsize為新的長(zhǎng)度

int brk(void *endds)

本函數(shù)用來(lái)改變分配給調(diào)用程序的數(shù)據(jù)段的空間數(shù)量,新的空間結(jié)束地址為endds

char *sbrk(int incr)

本函數(shù)用來(lái)增加分配給調(diào)用程序的數(shù)據(jù)段的空間數(shù)量,增加incr個(gè)字節(jié)的空間

unsigned long coreleft() 本函數(shù)返回未用的存儲(chǔ)區(qū)的長(zhǎng)度,以字節(jié)為單位

void *calloc(unsigned nelem,unsigned elsize)分配nelem個(gè)長(zhǎng)度為elsize的內(nèi)存空間

并返回所分配內(nèi)存的指針

void *malloc(unsigned size)分配size個(gè)字節(jié)的內(nèi)存空間,并返回所分配內(nèi)存的指針

void free(void *ptr)釋放先前所分配的內(nèi)存,所要釋放的內(nèi)存的指針為ptr

void *realloc(void *ptr,unsigned newsize)改變已分配內(nèi)存的大小,ptr為已分配有內(nèi)

存區(qū)域的指針,newsize為新的長(zhǎng)度,返回分配好的內(nèi)存指針。

long farcoreleft() 本函數(shù)返回遠(yuǎn)堆中未用的存儲(chǔ)區(qū)的長(zhǎng)度,以字節(jié)為單位

void far *farcalloc(unsigned long units,unsigned long unitsz)

從遠(yuǎn)堆分配units個(gè)長(zhǎng)度為unitsz的內(nèi)存空間,并返回所分配內(nèi)存的指針

void *farmalloc(unsigned long size)分配size個(gè)字節(jié)的內(nèi)存空間,

并返回分配的內(nèi)存指針

void farfree(void far *block)釋放先前從遠(yuǎn)堆分配的內(nèi)存空間,

所要釋放的遠(yuǎn)堆內(nèi)存的指針為block

void far *farrealloc(void far *block,unsigned long newsize)改變已分配的遠(yuǎn)堆內(nèi)

存的大小,block為已分配有內(nèi)存區(qū)域的指針,newzie為新的長(zhǎng)度,返回分配好

的內(nèi)存指針

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

時(shí)間日期函數(shù),函數(shù)庫(kù)為time.h、dos.h

在時(shí)間日期函數(shù)里,主要用到的結(jié)構(gòu)有以下幾個(gè):

總時(shí)間日期貯存結(jié)構(gòu)tm

┌──────────────────────┐

│struct tm │

│{ │

│ int tm_sec; │

│ int tm_min; │

│ int tm_hour; │

│ int tm_mday; │

│ int tm_mon; │

│ int tm_year; │

│ int tm_wday; │

│ int tm_yday; │

│ int tm_isdst; │

│} │

└──────────────────────┘

日期貯存結(jié)構(gòu)date

┌───────────────┐

│struct date │

│{ │

│ int da_year; │

│ char da_day; │

│ char da_mon; │

│} │

└───────────────┘

時(shí)間貯存結(jié)構(gòu)time

┌────────────────┐

│struct time │

│{ │

│ unsigned char ti_min; │

│ unsigned char ti_hour; │

│ unsigned char ti_hund; │

│ unsigned char ti_sec; │

│ │

└────────────────┘

char *ctime(long *clock)

本函數(shù)把clock所指的時(shí)間(如由函數(shù)time返回的時(shí)間)轉(zhuǎn)換成下列格式的

字符串:Mon Nov 21 11:31:54 1983\n\0

char *asctime(struct tm *tm)

本函數(shù)把指定的tm結(jié)構(gòu)類(lèi)的時(shí)間轉(zhuǎn)換成下列格式的字符串:

Mon Nov 21 11:31:54 1983\n\0

double difftime(time_t time2,time_t time1)

計(jì)算結(jié)構(gòu)time2和time1之間的時(shí)間差距(以秒為單位)

struct tm *gmtime(long *clock)本函數(shù)把clock所指的時(shí)間(如由函數(shù)time返回的時(shí)間)

轉(zhuǎn)換成格林威治時(shí)間,并以tm結(jié)構(gòu)形式返回

struct tm *localtime(long *clock)本函數(shù)把clock所指的時(shí)間(如函數(shù)time返回的時(shí)間)

轉(zhuǎn)換成當(dāng)?shù)貥?biāo)準(zhǔn)時(shí)間,并以tm結(jié)構(gòu)形式返回

void tzset()本函數(shù)提供了對(duì)UNIX操作系統(tǒng)的兼容性

long dostounix(struct date *dateptr,struct time *timeptr)

本函數(shù)將dateptr所指的日期,timeptr所指的時(shí)間轉(zhuǎn)換成UNIX格式,并返回

自格林威治時(shí)間1970年1月1日凌晨起到現(xiàn)在的秒數(shù)

void unixtodos(long utime,struct date *dateptr,struct time *timeptr)

本函數(shù)將自格林威治時(shí)間1970年1月1日凌晨起到現(xiàn)在的秒數(shù)utime轉(zhuǎn)換成

DOS格式并保存于用戶(hù)所指的結(jié)構(gòu)dateptr和timeptr中

void getdate(struct date *dateblk)本函數(shù)將計(jì)算機(jī)內(nèi)的日期寫(xiě)入結(jié)構(gòu)dateblk 中以供用戶(hù)使用

void setdate(struct date *dateblk)本函數(shù)將計(jì)算機(jī)內(nèi)的日期改成由結(jié)構(gòu)dateblk所指定的日期

void gettime(struct time *timep)本函數(shù)將計(jì)算機(jī)內(nèi)的時(shí)間寫(xiě)入結(jié)構(gòu)timep中, 以供用戶(hù)使用

void settime(struct time *timep)本函數(shù)將計(jì)算機(jī)內(nèi)的時(shí)間改為 由結(jié)構(gòu)timep所指的時(shí)間

long time(long *tloc)本函數(shù)給出自格林威治時(shí)間1970年1月1日凌晨至現(xiàn)在所經(jīng) 過(guò)的秒數(shù),并將該值存于tloc所指的單元中。

int stime(long *tp)本函數(shù)將tp所指的時(shí)間(例如由time所返回的時(shí)間) 寫(xiě)入計(jì)算機(jī)中.

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7604

    瀏覽量

    136841
  • 庫(kù)函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    177

    瀏覽量

    33976
  • 頭文件
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    9862
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問(wèn)為什么庫(kù)函數(shù)頭文件和寄存器頭文件不可共用?

    CLK_CKDIVR=0x01;可是這么編程后就報(bào)錯(cuò)iostm8s208mb.h頭文件缺少括號(hào),不知道為何庫(kù)函數(shù)頭文件與寄存器頭文件放一起時(shí)哪構(gòu)成語(yǔ)法錯(cuò)誤了;請(qǐng)問(wèn)我這個(gè)把庫(kù)函數(shù)一句一句
    發(fā)表于 04-28 06:22

    C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)大全

    C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)大全
    發(fā)表于 04-10 20:49

    keil自帶頭文件中為什么只有庫(kù)函數(shù)的聲明,它們的具體定義呢

    keil自帶頭文件中為什么只有庫(kù)函數(shù)的聲明,它們的具體定義呢
    發(fā)表于 04-29 18:15

    中斷函數(shù)頭文件怎么寫(xiě)?

    #pragma vector=ADC10_VECTOR__interrupt void ADC10_ISR (void)這個(gè)中斷函數(shù)頭文件怎么寫(xiě)?
    發(fā)表于 09-08 15:49

    單片機(jī)SFR定義的頭文件盤(pán)點(diǎn)

    STC12Cx052AD系列單片機(jī)頭文件 #include//STC12C5A60S2系列單片機(jī)頭文件 [更多庫(kù)函數(shù)頭定義] #include//設(shè)定插入點(diǎn) #include//字符處理 #include
    發(fā)表于 07-13 02:53

    庫(kù)函數(shù)頭文件編譯報(bào)錯(cuò)

    報(bào)錯(cuò)了,但是看到例程中改函數(shù)頭沒(méi)有這個(gè)頭文件,請(qǐng)問(wèn)例程中的該頭文件放在了哪里?我這樣直接放在#include "exti.c"里面可以嗎??
    發(fā)表于 01-28 06:25

    關(guān)于庫(kù)函數(shù)頭文件和源文件

    前言:記錄將以點(diǎn)亮led燈為例,編寫(xiě)一個(gè)庫(kù)函數(shù)一.新建文件夾,在其中加入相關(guān)源文件頭文件1.在USER文件夾中新建一個(gè)
    發(fā)表于 08-23 09:09

    stm32f10x_lib.hv2.0的ST庫(kù)函數(shù)頭文件

    1. core_cm3.ccore_cm3.h為采用Cortex-M3核設(shè)計(jì)SOC的芯片的外設(shè)提供一個(gè)進(jìn)入M3內(nèi)核的接口。部分與編譯器相關(guān)條件有關(guān)的編譯語(yǔ)句,用于屏蔽不同編譯器的差異。 2.stm32f10x_lib.hv2.0的ST庫(kù)函數(shù)頭文件,v3.5及以后新版為stm32f10x.h
    發(fā)表于 08-23 09:22

    如何去編寫(xiě)STM32看門(mén)狗的庫(kù)函數(shù)頭文件

    如何去編寫(xiě)STM32看門(mén)狗初始化的和喂狗的程序?如何去編寫(xiě)STM32看門(mén)狗的庫(kù)函數(shù)頭文件?
    發(fā)表于 08-26 11:53

    C語(yǔ)言庫(kù)函數(shù)使用大全免費(fèi)下載

    C語(yǔ)言庫(kù)函數(shù)使用大全免費(fèi)下載 函數(shù)名: abort 功 能: 異常終止一個(gè)進(jìn)程 用 法: void abort(void); 程序例: #include stdio.h #include
    發(fā)表于 11-16 11:53 ?468次下載

    51單片機(jī)庫(kù)函數(shù)詳解(三-一)

    庫(kù)函數(shù)詳解該內(nèi)核庫(kù)下面有三個(gè)文件夾,三個(gè)文件,以下代碼都是從KEIL中直接拿出來(lái)的源碼,所以格式啥的都或多或少發(fā)生了變化,注重體驗(yàn)感直接去看KEIL工程里看。include_main.h該文件
    發(fā)表于 11-20 16:36 ?5次下載
    51單片機(jī)<b class='flag-5'>庫(kù)函數(shù)</b>詳解(三-一)

    【STM32單片機(jī)-庫(kù)函數(shù)】SysTick延時(shí)—delay

    : SysTick延時(shí)函數(shù)頭文件 /* --------------------------------------------------------- */#ifndef _DELAY_H_#define _DELAY_H_#ifdef __cplusplusextern "c
    發(fā)表于 11-24 19:06 ?13次下載
    【STM32單片機(jī)-<b class='flag-5'>庫(kù)函數(shù)</b>】SysTick延時(shí)—delay

    IAR中將部分文件編譯成庫(kù)函數(shù).a及如何調(diào)用庫(kù)函數(shù)

    目的:將庫(kù)函數(shù)提供給第三方,但有不想讓別人得到源代碼。目的:將庫(kù)函數(shù)提供給第三方,但有不想讓別人得到源代碼。一、如何將文件編譯成靜態(tài)連接庫(kù).a二、如何在項(xiàng)目中引入靜態(tài)連接庫(kù)...
    發(fā)表于 12-03 11:36 ?17次下載
    IAR中將部分<b class='flag-5'>文件</b>編譯成<b class='flag-5'>庫(kù)函數(shù)</b>.a及如何調(diào)用<b class='flag-5'>庫(kù)函數(shù)</b>

    MCU_頭文件編寫(xiě)

    頭文件中一般放一些重復(fù)使用的代碼,如:常量、變量、宏等的定義,函數(shù)的聲明。當(dāng)使用#include語(yǔ)句引用頭頭文件時(shí),相當(dāng)于將頭文件中的內(nèi)容復(fù)制到#include處。
    發(fā)表于 12-05 10:36 ?5次下載
    MCU_<b class='flag-5'>頭文件</b>編寫(xiě)

    基于標(biāo)準(zhǔn)庫(kù)函數(shù)與基于HAL庫(kù)函數(shù)的stm32編程方式對(duì)比

    一、基于標(biāo)準(zhǔn)庫(kù)函數(shù)的stm32編程方式二、基于HAL庫(kù)函數(shù)的stm32編程方式差異上面也提到了,STM32有非常多的寄存器,而導(dǎo)致了開(kāi)發(fā)困難,所以為此ST公司就為每款芯片都編寫(xiě)了一份庫(kù)文件,也就是工程
    發(fā)表于 12-28 19:09 ?30次下載
    基于標(biāo)準(zhǔn)<b class='flag-5'>庫(kù)函數(shù)</b>與基于HAL<b class='flag-5'>庫(kù)函數(shù)</b>的stm32編程方式對(duì)比