c語言硬件驅(qū)動庫函數(shù) c語言硬件編程

C語言 庫函數(shù)的實現(xiàn)???

C語言的庫函數(shù)大多數(shù)是用C語言編的,只有少數(shù)與硬件有直接聯(lián)系的核心部分才用匯編.

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供兩當(dāng)網(wǎng)站建設(shè)、兩當(dāng)做網(wǎng)站、兩當(dāng)網(wǎng)站設(shè)計、兩當(dāng)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、兩當(dāng)企業(yè)網(wǎng)站模板建站服務(wù),10多年兩當(dāng)做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

所謂庫函數(shù)并不深奧,庫函數(shù)也是由一個一個函數(shù)(子程序)組成的,如同我們自己程序里,有時也寫很多子程序.

如果我們把一些可以反復(fù)使用的子程序拿出來,集中到一起,編譯成一個my.obj文件,今后寫新程序時我們不另寫這些子程序,我們只寫子程序的調(diào)用語句,編譯時鏈結(jié)my.obj就可以了.當(dāng)然,新程序的main()前面要有這些被調(diào)函數(shù)(子程序)的"原型"聲明.

my.obj加上它里面的函數(shù)"原型"聲明,就構(gòu)成了庫函數(shù).函數(shù)"原型"聲明就是這個庫的"頭"文件-- my.h, 這就是靜態(tài)鏈結(jié)庫.

自己也可以寫動態(tài)鏈接庫,動態(tài)鏈接庫包括.DLL,.LIB,.H

自己寫的靜態(tài)鏈結(jié)庫和動態(tài)鏈接庫也可給別人用.就象C語言的庫函數(shù)給你用一樣.當(dāng)你給別人時,你如果不給你寫的C的函數(shù),別人也"看不到了",別人只能查頭文件,得知函數(shù)名,參數(shù)個數(shù)和類型.

c語言的庫函數(shù)(尤其是與硬件聯(lián)系的函數(shù))是誰編出來的,是用匯編語言編的嗎??printf函數(shù)的原型是什么呢

庫函數(shù)是做編譯器的人寫出來的,也是用C寫出來的,庫函數(shù)不屬于C語言的一個部分,是人們?yōu)榱耸笴用來寫程序時效率更高,而預(yù)先寫好的函數(shù),其實你也可以自己寫的。

printf(char *format,arg1,arg2,...),使用了可變長參數(shù)表

求C語言的常用函數(shù),詳細(xì)一點

C語言的常用庫函數(shù)

函數(shù)1。absread()讀磁盤絕對扇區(qū)函數(shù)

函數(shù)2。abswrite()寫磁盤絕對扇區(qū)函數(shù)

函數(shù)3。atof()將字符串轉(zhuǎn)換成浮點數(shù)的函數(shù)

函數(shù)4。atoi()將字符串轉(zhuǎn)換成整型數(shù)的函數(shù)

函數(shù)5。atol()將字符串轉(zhuǎn)換成長整型數(shù)的函數(shù)

函數(shù)6。bcd()把一個數(shù)轉(zhuǎn)換成對應(yīng)的BCD碼的函數(shù)

函數(shù)7。bdos()

函數(shù)8。biosdisk()調(diào)用BIOS磁盤驅(qū)動程序函數(shù)

函數(shù)9。biosprint()調(diào)用BIOS打印機(jī)I/O接口的函數(shù)

函數(shù)10。calloc()分配內(nèi)存函數(shù)

函數(shù)11。ceil()

函數(shù)12。cgets()讀字符串函數(shù)

函數(shù)13。chdir()改變當(dāng)前目錄的函數(shù)

函數(shù)14。_chmod()改變文件存取權(quán)限的函數(shù)

函數(shù)15。chmod()改變文件存取權(quán)限的函數(shù)

函數(shù)16。clock()

函數(shù)17。close()關(guān)閉文件函數(shù)

函數(shù)18。closegraph()關(guān)閉圖形函數(shù)

函數(shù)19。cos()

函數(shù)20。ctrlbrk()設(shè)置ctrl-break處理程序的函數(shù)

函數(shù)21。delay()暫停函數(shù)

函數(shù)22。disable()屏蔽中斷的宏

函數(shù)23。enable()開硬件中斷的宏

函數(shù)24。exec()加載并運行其它程序的函數(shù)族

函數(shù)25。farcalloc()從遠(yuǎn)堆中分配內(nèi)存的函數(shù)

函數(shù)26。farfree()從遠(yuǎn)堆中釋放一塊已分配內(nèi)存的函數(shù)

函數(shù)27。farmalloc()從遠(yuǎn)堆中分配內(nèi)存的函數(shù)

函數(shù)28。farrealloc()調(diào)整遠(yuǎn)堆中已分配塊的函數(shù)

函數(shù)29。fclose()關(guān)閉一個流函數(shù)

函數(shù)30。fcloseall()關(guān)閉打開的流的函數(shù)

函數(shù)31。feof()檢查文件是否結(jié)束的函數(shù)

函數(shù)32。fgets()從流中讀取一字符串的函數(shù)

函數(shù)33。findfirst()函數(shù)和findnext()函數(shù)

函數(shù)34。floodfill()填充區(qū)域的函數(shù)

函數(shù)35。floor()

函數(shù)36。fnmerge()建立文件路徑函數(shù)

函數(shù)37。fnsplit()分解完整的路徑名函數(shù)

函數(shù)38。fopen()打開一個流函數(shù)

函數(shù)39。FP_OFF()獲取遠(yuǎn)地址偏移量的宏

函數(shù)40。fprintf()傳送輸出到一個流中的函數(shù)

函數(shù)41。FP_SEG()獲取遠(yuǎn)地址段值的宏

函數(shù)42。fscanf()格式化輸入函數(shù)

函數(shù)43。fseek()移動文件指針函數(shù)

函數(shù)44。fwrite()把參數(shù)寫入流中的函數(shù)

函數(shù)45。gcvt()把雙精度數(shù)轉(zhuǎn)化成字符串的函數(shù)

函數(shù)46。geninterrupt()執(zhí)行中斷函數(shù)

函數(shù)47。getc()從流中取字符的宏

函數(shù)48。getch()從鍵盤無回顯地讀取一字符的函數(shù)

函數(shù)49。getchar()從stdin流中讀取一個字符的函數(shù)

函數(shù)50。getcurdir()讀取指定驅(qū)動器的當(dāng)前目錄的函數(shù)

函數(shù)61。getcwd()讀取當(dāng)前目錄的函數(shù)

函數(shù)62。getdate()讀取系統(tǒng)日期函數(shù)

函數(shù)63。getdfree()讀取磁盤空閑空間的函數(shù)

函數(shù)64。getdisk()讀取當(dāng)前磁盤驅(qū)動器號函數(shù)

函數(shù)65。getenv()讀取環(huán)境變量的當(dāng)前值的函數(shù)

函數(shù)66。getimage()將指定區(qū)域的位圖象存入內(nèi)存的函數(shù)

函數(shù)67。getmaxx()返回屏幕上最大的X坐標(biāo)值的函數(shù)

函數(shù)68。getmaxy()返回屏幕上最大的Y坐標(biāo)值的函數(shù)

函數(shù)69。getpixel()讀取像素顏色的函數(shù)

函數(shù)70。getpsp()

函數(shù)71。gets()從標(biāo)準(zhǔn)輸入流stdio中讀取一字符串的函數(shù)

函數(shù)72。gettime()讀取系統(tǒng)時間的函數(shù)

函數(shù)73。getvect()讀取中斷向量函數(shù)

函數(shù)74。getx()返回當(dāng)前圖形方式下位置的X坐標(biāo)值的函數(shù)

函數(shù)75。gety()返回當(dāng)前圖形方式下位置的Y坐標(biāo)值的函數(shù)

函數(shù)76。imagesize()返回保存圖像緩沖區(qū)大小的函數(shù)

函數(shù)77。initgraph()顯示模式控制函數(shù)(初始化圖形系統(tǒng)函數(shù))

函數(shù)78。inport()從端口中讀入一個字的函數(shù)

函數(shù)79。inportb()從端口讀入一個字節(jié)的函數(shù)

函數(shù)80。int86()執(zhí)行中斷函數(shù)(調(diào)用8086軟中斷函數(shù))

函數(shù)81。int86x()執(zhí)行中斷函數(shù) (通用8086軟中斷接口函數(shù))

函數(shù)82。intdos()通用dos中斷接口函數(shù)

函數(shù)83。intdosx()通用dos中斷接口函數(shù)

函數(shù)84。intr()執(zhí)行8086軟中斷函數(shù)(改變軟中斷接口函數(shù))

函數(shù)85。itoa()把整形數(shù)轉(zhuǎn)換為字符串的函數(shù)

函數(shù)86。kbhit()檢查當(dāng)前按下的鍵的函數(shù)

函數(shù)87。keep()駐留并退出函數(shù)

函數(shù)88。log()

函數(shù)89。log10()

函數(shù)90。_lrotl()將一個無符號長整形數(shù)左循環(huán)移位的函數(shù)

函數(shù)91。_lrotr()將一個無符號長整形數(shù)右循環(huán)移位的函數(shù)

函數(shù)92。lseek()移動文件指針函數(shù)

函數(shù)93。ltoa()把長整形數(shù)轉(zhuǎn)換為字符串的函數(shù)

函數(shù)94。malloc()分配內(nèi)存函數(shù)

函數(shù)95。mkdir()創(chuàng)建目錄函數(shù)

函數(shù)96。mktemp()建立一個唯一的文件名的函數(shù)

函數(shù)97。MK_FP()設(shè)置一個遠(yuǎn)指針的宏

函數(shù)98。movedata()拷貝數(shù)據(jù)函數(shù)

函數(shù)99。_open()打開一個文件進(jìn)行讀寫的函數(shù)

函數(shù)100。open()打開文件進(jìn)行讀寫的函數(shù)

函數(shù)101。outport()輸出一個字到端口中的函數(shù)

函數(shù)102。outportb()輸出一個字節(jié)到端口中的函數(shù)

函數(shù)103。outtextxy()在指定位置顯示一字符串的函數(shù)

函數(shù)104。peek()返回指定內(nèi)存中字的函數(shù)

函數(shù)105。peekb()返回指定內(nèi)存中字節(jié)的函數(shù)

函數(shù)106。poke()在指定的內(nèi)存中存儲一個字的函數(shù)

函數(shù)107。pokeb()在指定的內(nèi)存中存儲一個字節(jié)的函數(shù)

函數(shù)108。pow()

函數(shù)109。printf()寫格式化輸出到stdout的函數(shù)

函數(shù)110。putch()向屏幕輸出字符的函數(shù)

函數(shù)111。putchar()在stdout上輸出字符的宏

函數(shù)112。putenv()將字符串放入當(dāng)前環(huán)境中的函數(shù)

函數(shù)113。putimage()重新寫屏函數(shù)(輸出一個位圖象到圖形屏幕上的函數(shù))

函數(shù)114。putpixel()寫像素點函數(shù)

函數(shù)115。puts()輸出一字符串到stdout(標(biāo)準(zhǔn)輸出)的函數(shù)

函數(shù)116。_read()讀文件函數(shù)

函數(shù)117。read()讀文件函數(shù)

函數(shù)118。realloc()重新分配內(nèi)存函數(shù)

函數(shù)119。rectangle()畫一個矩形的函數(shù)

函數(shù)120。remove()刪除一個文件的函數(shù)

函數(shù)121。rename()文件改名函數(shù)

函數(shù)122。restorecrtmode()恢復(fù)屏幕視頻模式為調(diào)用initgraph前的設(shè)置的函數(shù)

函數(shù)123。rmdir()刪除目錄函數(shù)

函數(shù)124。_rotl()將一個無符號整形數(shù)左循環(huán)移位的函數(shù)

函數(shù)125。_rotr()將一個無符號整形數(shù)右循環(huán)移位的函數(shù)

函數(shù)126。scanf()格式化輸入函數(shù)

函數(shù)127。searchpath()按dos路徑查找一個文件的函數(shù)

函數(shù)128。segread()讀段寄存器函數(shù)

函數(shù)129。setactivepage()設(shè)置圖形輸出活動頁的函數(shù)

函數(shù)130。setcolor()設(shè)置當(dāng)前要畫的線顏色的函數(shù)

函數(shù)131。setdisk()設(shè)置當(dāng)前驅(qū)動器的函數(shù)

函數(shù)132。setgraphmode()將系統(tǒng)設(shè)置成圖形模式并清屏的函數(shù)

函數(shù)133。setlinestyle()設(shè)置當(dāng)前畫線寬度和類型的函數(shù)

函數(shù)134。settextstyle()顯示字符的當(dāng)前設(shè)置函數(shù)

函數(shù)135。setvect()設(shè)置中斷向量函數(shù)

函數(shù)136。setviewport()建立視口的函數(shù)

函數(shù)137。setvisualpage()設(shè)置可見的圖形頁號的函數(shù)

函數(shù)138。sin()

函數(shù)139。sprintf()格式化輸出到數(shù)組的函數(shù)

函數(shù)140。strcat()

函數(shù)141。tan()

函數(shù)142。_write()寫文件函數(shù)

函數(shù)143。write()寫文件函數(shù)

原文釋義請到百度文庫里搜尋字串“C語言常用函數(shù)”后下載

函數(shù)51-60因原注里排序號碼少編,所以只有133個常用函數(shù)。

DOC大小是119.5KB

貢獻(xiàn)時間:2010-09-10

貢獻(xiàn)者:handanlinzhang

求C語言庫函數(shù)大全!請大家?guī)兔?謝了!

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

int isalnum(int ch) 若ch是字母('A'-'Z','a'-'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是小寫字母('a'-'z')返回非0值,否則返回0

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

int ispunct(int ch) 若ch是標(biāo)點字符(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進(jìn)制數(shù)('0'-'9','A'-'F','a'-'f')返回非0值,

否則返回0

int tolower(int ch) 若ch是大寫字母('A'-'Z')返回相應(yīng)的小寫字母('a'-'z')

int toupper(int ch) 若ch是小寫字母('a'-'z')返回相應(yīng)的大寫字母('A'-'Z')

========數(shù)學(xué)函數(shù)(原型聲明所在頭文件為math.h、stdlib.h、string.h、float.h)===========

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

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

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

long labs(long n) 返回長整型參數(shù)n的絕對值

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) 返回直角三角形斜邊的長度(z),

x和y為直角邊的長度,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)生一個隨機(jī)數(shù)并返回這個數(shù)

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

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)換成浮點數(shù)并返回這個浮點數(shù)

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

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

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

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

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

將浮點數(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)

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

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

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

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

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

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

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

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

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

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

并返回這個數(shù),

int matherr(struct exception *e)

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

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

double *arg2p,double retval)

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

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

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

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

============目錄函數(shù)(原型聲明所在頭文件為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為指定的保存文件信息的一個結(jié)構(gòu),定義如下:

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

┃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 卷標(biāo)號┃

┃FA_HIDDEN 隱藏文件┃FA_DIREC 目錄 ┃

┃FA_SYSTEM 系統(tǒng)文件┃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)

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

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

存與path中.

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

此函數(shù)將文件名path分解成盤符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)前工作目錄名稱

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

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

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

節(jié)長為為止.錯誤返回NULL

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

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

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

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

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

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

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

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

===========進(jìn)程函數(shù)(原型聲明所在頭文件為stdlib.h、process.h)===========

void abort() 此函數(shù)通過調(diào)用具有出口代碼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函數(shù)族裝入并運行程序pathname,并將參數(shù)

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

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

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

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

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

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

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

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

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

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

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

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

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

mode為運行模式

mode為 P_WAIT 表示在子程序運行完后返回本程序

P_NOWAIT 表示在子程序運行時同時運行本程序(不可用)

P_OVERLAY表示在本程序退出后運行子程序

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

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

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

l時, 函數(shù)傳遞的參數(shù)個數(shù)固定.

v時, 函數(shù)傳遞的參數(shù)個數(shù)不固定.

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

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

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

======轉(zhuǎn)換子程序(函數(shù)原型所在頭文件為math.h、stdlib.h、ctype.h、float.h)========

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

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

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

將浮點數(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)

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

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

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

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

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

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

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

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

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

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

并返回這個數(shù),

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

int tolower(int ch) 若ch是大寫字母('A'-'Z')返回相應(yīng)的小寫字母('a'-'z')

int _tolower(int ch) 返回ch相應(yīng)的小寫字母('a'-'z')

int toupper(int ch) 若ch是小寫字母('a'-'z')返回相應(yīng)的大寫字母('A'-'Z')

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

C語言如何調(diào)用 驅(qū)動函數(shù)

驅(qū)動函數(shù)不是直接調(diào)用的,而是通過通訊完成調(diào)用的。可以參考:

BOOL?WINAPI?DeviceIoControl(

_In_?????????HANDLE?hDevice,

_In_?????????DWORD?dwIoControlCode,

_In_opt_?????LPVOID?lpInBuffer,

_In_?????????DWORD?nInBufferSize,

_Out_opt_????LPVOID?lpOutBuffer,

_In_?????????DWORD?nOutBufferSize,

_Out_opt_????LPDWORD?lpBytesReturned,

_Inout_opt_??LPOVERLAPPED?lpOverlapped

);

文章標(biāo)題:c語言硬件驅(qū)動庫函數(shù) c語言硬件編程
分享地址:http://muchs.cn/article4/docddie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站面包屑導(dǎo)航、軟件開發(fā)、移動網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司