天天看點

C語言的常用庫函數

absread()讀磁盤絕對扇區函數

原形:int absread(int drive,int num,int sectnum,void *buf)

功能:從drive指定的驅動器磁盤上,sectnum指定的邏輯扇區号開始讀取(通過DOS中斷0x25讀取)num個(最多64K個)扇區的内容,儲存于buf所指的緩沖區中。

參數:drive=0對應A盤,drive=1對應B盤。

傳回值:0:成功;-1:失敗。

頭檔案:dos.h

abswrite()寫磁盤絕對扇區函數

原形:int abswrite(int drive,int nsects,int lsect,void *buffer)

  drive=0(A驅動器)、1(B驅動器)、

  nsects=要寫的扇區數(最多64K個);

  lsect=起始邏輯扇區号;

  buffer=要寫入資料的記憶體起始位址。

功能:将指定内容寫入(調用DOS中斷0x26)磁盤上的指定扇區,即使寫入的地方是磁盤的邏輯結構、檔案、FAT表和目錄結構所在的扇區,也照常進行。

傳回值:0:成功;-1:失敗。

頭檔案:dos.h

atof()将字元串轉換成浮點數的函數

原形:double atof(const char *s)

功能:把s所指向的字元串轉換成double類型。

   s格式為:符号 數字.數字 E符号 數字

傳回值:字元串的轉換值。

頭檔案:math.h、stdlib.h

atoi()将字元串轉換成整型數的函數

原形:int atoi(const char *s)

功能:把s所指向的字元串轉換成int類型。

   s格式為:符号 數字

傳回值:字元串的轉換值。若出錯則傳回0。

頭檔案:stdlib.h

atol()将字元串轉換成長整型數的函數

原形:long atol(const char *s)

功能:把s所指向的字元串轉換成long int類型。

   s格式為:符号 數字

傳回值:字元串的轉換值。若出錯則傳回0。

頭檔案:stdlib.h

bcd()把一個數轉換成對應的BCD碼的函數

原形:bcd bcd(int x)

   bcd bcd(double x)

   bcd bcd(double x,int decimals)

注意:BCD碼的精度可達17位。參數decimals是可選的,用來指定轉換後小數點後的位數。

頭檔案:bcd.h

bdos()

原形∶int bdos(int fnum,unsigned dx,unsigned al)

  其中fnum是系統調用号;dx是傳給寄存器DX的值;al是傳給寄存器AL的值;

功能∶DOS系統調用(INT21H)

傳回值∶AX中的值

biosdisk()調用BIOS磁盤驅動程式函數

原形:char biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer)

功能:使用中斷0x13,直接調用BIOS進行磁盤操作

參數:(1)cmd:

    2-資料以每扇區512位元組的格式讀入buffer,起始扇區由head、track和sector定,扇區數由nsects定。

    3-将buffer中的資料按每扇區512位元組寫入磁盤。

    4-對扇區進行資料校驗。

    6-格式化一個磁盤并對化扇區設定化标志。

    8-傳回目前驅動器參數在buffer的前4個位元組中。

    10-長讀,每扇區讀入512位元組加上額外的4個位元組。

    11-長寫,每扇區寫入512位元組加上額外的4個位元組。

   (2)drive:0-第一個軟驅;1-第二個軟驅;0x80-第一個硬驅

   (3)head:磁頭

   (4)track:磁道

   (5)sector:扇區

   (6)nsects:扇區數

   (7)buffer:資料緩沖區,定義為unsigned char buffer[];

傳回值:0x00-操作成功

    0x01-錯誤指令

    0x03-企圖寫具有寫保護的磁盤

    0x07-驅動器參數設定錯誤

    0x10-磁盤讀/CRC/ECC錯誤

頭檔案:bios.h

注:對于硬碟主引導記錄扇區head=0,track=0,sector=1

biosprint()調用BIOS列印機I/O接口的函數

原形:int biosprint(int cmd,int abyte,int port)

功能:通過BIOS中斷0x17在由參數port指定的列印機上完成各種列印機功能。

   port=0(LPT1)

     =1(LPT2);

   cmd=0(列印字元abyte)

     1(初始化列印機端口)

     2(讀列印機狀态);

   abyte=0-255;

傳回值:列印機狀态

   位0(裝置逾時);位3(I/O出錯);位4(列印機已選擇);位5(沒紙);位6(列印機确認);位7(不忙)

頭檔案:bios.h

calloc()配置設定記憶體函數

原形:void *calloc(size_t nitems,size_t size)

功能:在堆中配置設定一塊記憶體,将該記憶體的内容全部清0。

傳回值:傳回指向新配置設定記憶體的指針。空間不夠則傳回NULL。

頭檔案:stdlib.h、calloc.h

ceil()

原形∶double ceil(double num)

功能∶求不小于num的最小雙精度整數

頭檔案∶math.h

cgets()讀字元串函數

原形:char *cgets(char *str)

功能:從控制台讀入一個字元串,并将該字元串(和字元串長度)存入有str所指向的位址中。

注意:在調用cgets之前,必須将要讀入的字元串最大長度存入str[0]中,傳回時str[1]被設定為實際讀入的字元數。實際字元串内容從str[2]開始,以空字元(/0)結尾。

傳回值:指向str[2]的指針。

頭檔案:conio.h

chdir()改變目前目錄的函數

原形:int chdir(const char *path)

功能:把由path指定的目錄改為目前目錄。path參數中可以指定驅動器号,如“a://ddd”, 但隻是改變該驅動器上的目前目錄,對目前活動驅動器上的目前目錄無影響。

傳回值:0(成功);-1(失敗)

頭檔案:dir.h

_chmod()改變檔案存取權限的函數

原形:int _chmod(const char *path,int func[,int attrib])

功能:讀取(func=0時)或設定(func=1時)DOS檔案屬性。

   attrib=FA_RDONLY 隻讀

   attrib=FA_HIDDEN 隐藏檔案

   attrib=FA_SYSTEM 系統檔案

   attrib=FA_LABLE 卷标

   attrib=FA_DIREC 目錄

   attrib=FA_ARCH 檔案

傳回值:失敗時傳回-1。成功時傳回檔案的屬性位元組,如果 傳回值&FA_RDONLY 不等于0,則檔案是隻讀檔案;......

頭檔案:io.h、dos.h

chmod()改變檔案存取權限的函數

原形:int chmod(const char *path,int amode)

功能:根據amode的值,設定由path所指檔案的存取權限。

  amode的值     存取權限

  S_IWRITE      允許寫

  S_IREAD      允許讀(隻讀)

  S_IREAD|S_IWRITE  可讀可寫

傳回值:0(成功);-1(失敗)

頭檔案:io.h、sys/stat.h

clock()

原形∶long clock(void)

功能∶測得從程式開始到調用處處理機所用的時間

頭檔案∶time.h

close()關閉檔案函數

原形:int close(int handle)

功能:關閉由檔案句柄所指向的檔案,句柄是調用_creat、creat、creatnew、creattemp、dup、dup2、_open或open時得到的。該函數并不在檔案末尾寫一個Ctrl-Z字元,如果想用該字元結束檔案,必須顯式地給出該字元。

傳回值:0(成功);-1(失敗)

頭檔案:io.h

closegraph()關閉圖形函數

原形:void far closegraph(void)

功能:釋放圖形系統配置設定的所有記憶體,将螢幕恢複到調用initgraph之前的模式。

頭檔案:graphics.h

cos()

原形∶double cos(double arg)

功能∶計算arg(弧度)的餘弦值

頭檔案∶math.h

ctrlbrk()設定ctrl-break處理程式的函數

原形:void ctrlbrk(int(*handle)(void))

功能:修改中斷向量0x23,使用新的ctrl-break中斷處理函數。

用法:ctrlbrk(函數名);

  先定義函數:int 函數名(void){...}

頭檔案:dos.h

delay()暫停函數

原形:void delay(unsigned milliseconds)

功能:暫停目前所執行的程式milliseconds毫秒。

頭檔案:dos.h

disable()屏蔽中斷的宏

原形:void disble(void)

功能:屏蔽中斷,隻允許從外部裝置來的不可屏蔽中斷(NMI)。

頭檔案:dos.h

enable()開硬體中斷的宏

原形:void enable(void)

功能:開放中斷,允許接受任何裝置産生的中斷。

頭檔案:dos.h

exec()加載并運作其它程式的函數族

execl(),execle(),execlp(),execlpe(),

execv(),execve(),execvp(),execvpe()

原形∶ int execl(char *path,char *arg0,*arg1,...,*argn,NULL)

int execle(char *path,char *arg0,*arg1,...,*argn,NULL,char **env)

int execlp(char *path,char *arg0,*arg1,...,*argn,NULL)

int execlpe(char *path,char *arg0,*arg1,...,*argn,NULL,char **env)

int execv(char *path,char *argv[])

int execve(char *path,char *argv[],char **env)

int execvp(char *path,char *argv[])

int execvpe(char *path,char *argv[],char **env)

  其中,path是調用的子程式的檔案名,在exec後面的字尾具有某種功能:

   p表示函數能夠在由DOS環境變量PATH的目錄中搜尋子程序檔案,如果path中未指明檔案所在目錄,函數将首先在目前目錄中找,然後在DOS環境變量指定的目錄中找。

   l表示參數指針(arg0,...,argn)按單獨參數傳送。當預先知道要傳送的參數個數時,通常用帶字尾l的函數。

   v表示參數指針(arg0,...,argn)按指針數組傳送。當要傳送的參數可變時,使用帶字尾v的函數。

   e表示參數env可以傳送到子程序,該函數可用來修改子程序的環境。若無e字尾,子程序将繼承父程序的環境。

注意:arg0+...+argn,或arg[0]+...+arg[n]的總長度必需小于128位元組。當調用exec函數時,原先已經打開的檔案在子程序中仍然是打開的。

功能:加載并運作其它程式,調用時必須有足夠的記憶體空間用于加載和執行子程式,子程式将覆寫父程式。

頭檔案:process.h

farcalloc()從遠堆中配置設定記憶體的函數

原形:void far *farcalloc(unsigned long nunits,unsigned long unitsz)

功能:從遠堆中為包含nunits個元素的數組配置設定記憶體,每一區unitsz位元組長。

用法:fptr=farcalloc(數目,sizeof(char));

  先定義:char far *fptr;

注意:所有可用RAM能被配置設定;大于64K的塊能被配置設定;用遠指針存取該塊。微模式不能用。

傳回值:傳回指向新配置設定塊的指針,若記憶體不夠,則傳回NULL。

頭檔案:alloc.h

farfree()從遠堆中釋放一塊已配置設定記憶體的函數

原形:void farfree(void far *block)

頭檔案:alloc.h

farmalloc()從遠堆中配置設定記憶體的函數

原形:void far *farmalloc(unsigned long nbytes)

使用方式:fptr=farmalloc(位元組數);

    先定義char far *fptr;

功能:從遠堆中配置設定長nbytes位元組的記憶體。

注意:所有可用RAM能被配置設定;大于64K的塊能被配置設定;用遠指針存取該塊。微模式不能用。

傳回值:傳回指向新配置設定記憶體的指針,若記憶體不夠,則傳回NULL。

頭檔案:alloc.h

farrealloc()調整遠堆中已配置設定塊的函數

原形:void far *farrealloc(void far *oldblock,unsigned long nbytes)

傳回值:傳回調整後的新記憶體位址。若不能重新配置設定,則傳回NULL。

頭檔案:alloc.h

fclose()關閉一個流函數

原形:int fclose(FILE *stream)

使用方式:fclose(檔案指針名);其中檔案指針名=fopen();

功能:關閉指定的流,關閉前清除所有與stream相聯的緩沖區,釋放系統配置設定的緩沖區,但由setbuf設定的緩沖區不能自動釋放。

傳回值:0(成功);EOF(失敗)

頭檔案:stdio.h

fcloseall()關閉打開的流的函數

原形:int fcloseall(void)

功能:關閉所有打開的流,由stdin、stdout、stdprn、stderr和stdaux設定的流除外。

傳回值:關閉流的總數。如果發現錯誤則傳回EOF。

頭檔案:stdio.h

feof()檢查檔案是否結束的函數

原形∶int feof(FILE *fp)

傳回值∶檔案結束傳回非0值,否則傳回0。

頭檔案∶stdio.h

fgets()從流中讀取一字元串的函數

原形:char *fgets(char s[],int n,FILE *stream)

使用格式:fgets(字元串指針,字元個數,檔案指針)

功能:從輸入流stream中讀入字元存到s串中。當讀了n-1個字元或遇到換行符時,函數停止讀過程。fgets在s串尾保留換行字元。讀入的最後一個字元後面加一個空字元。

傳回值:成功時傳回字元串參數s,出錯或遇到檔案結束時,傳回NULL。

頭檔案:stdio.h

findfirst()函數和findnext()函數

調用方式:整形數=findfirst(檔案名,&結構變量名,屬性常數組合(如0x26));其中定義struct ffblk 結構變量名;

原形:int findfirst(path,buffer,attr)和int findnext(buffer)

   char *path;//要檢索的檔案名

   struct ffblk

    {

    char ff_reserved[21];

    char ff_attrib;//被檢索的檔案屬性

    unsigned ff_ftime;//最後修改的時間

     //(0-4位:秒數/2;5-10位:分數;11-15位:小時數)

    unsigned ff_fdate;//最後修改的日期

     //(0-4位:日;5-8位:月;9-15位:年減1980)

    long ff_fsize;//檔案大小

    char ff_name[13];//組名

    }*buffer;

   int attr;//要檢索的檔案屬性

功能:檢索由path和attr指定的檔案,把結果傳回到buffer。findfirst傳回關于第一個指定檔案的資訊,findnext繼續檢索。

傳回值:0(檢索成功),-1(沒有找到指定的檔案)

屬性常數:

  FA_NORMAL(0x00)  含意:Normal file, no attributes

  FA_RDONLY(0x01)  含意:隻讀

  FA_HIDDEN(0x02)  含意:隐含檔案

  FA_SYSTEM(0x04)  含意:系統檔案

  FA_LABEL(0x08)   含意:卷标

  FA_DIREC(0x10)   含意:子目錄

  FA_ARCH(0x20)   含意:修改的檔案Archive

頭檔案:dir.h(dos.h)

floodfill()填充區域的函數

原形:void far floodfill(int x,int y,int border)

功能:在圖形裝置上用顔色border圍起來的區域将用目前填充顔色填充。(x,y)是待填充區域的起點,若起點在封閉區域内,則區域内被填充;若起點在封閉區域外,則區域外被填充。

頭檔案:graphics.h

floor()

原形∶double floor(double num)

功能∶求不大于num的最大雙精度整數

頭檔案∶math.h

fnmerge()建立檔案路徑函數

原形:void fnmerge(char *path,const char *drive,const char *dir, const char *name,const char *ext)

功能:合成drive:/dir/name.ext,放在path

頭檔案:dir.h

fnsplit()分解完整的路徑名函數

原形:int fnsplit(char *path,const char *drive,const char *dir,const char *name,const char *ext)

功能:把檔案名路徑path分成4個部分存放。

  其中drive中有冒号;dir中有開始和結尾的反斜杠;ext包括開始圓點

傳回值:如果有擴充名,則 傳回值&EXTENSION!=0

    如果有檔案名,則 傳回值&FILENAME!=0

    如果有目錄名,則 傳回值&DIRECTORY!=0

    如果有驅動器号,則傳回值&DIRVE!=0

頭檔案:dir.h

fopen()打開一個流函數

原形:FILE *fopen(const char *filename,const char *mode)

功能:打開用filename指定的檔案,并使其與一個流相聯。

使用方式:檔案指針名=fopen("檔案名","處理方式")

    "處理方式"取:

    "rt"  打開一個文本檔案,隻能讀。

    "wt"  生成一個文本檔案,隻能寫。若檔案存在則被重寫。

    "at"  打開一個文本檔案,隻能在檔案尾部添加。

    "rb"  打開一個二進制檔案,隻能讀。

    "wb"  生成一個二進制檔案,隻能寫。

    "ab"  打開一個二進制檔案,隻能在檔案尾部添加。

    "rt+"  打開一個文本檔案,可讀可寫。

    "wt+"  生成一個文本檔案,可讀可寫。

    "at+"  打開一個文本檔案,可讀可添加。

    "rb+"  打開一個二進制檔案,可讀可寫。

    "wb+"  生成一個二進制檔案,可讀可寫。

    "ab+"  打開一個二進制檔案,可讀可添加。

傳回值:指明流的指針(成功時)或NULL(失敗時)

注:需先定義 FILE *檔案指針名;

  "檔案名"若用 argv[1]代替,則可使用指令行形式指定檔案名

FP_OFF()擷取遠位址偏移量的宏

原形:unsigned FP_OFF(void far *p)

功能:取得和設定遠指針*p的偏移量

傳回值:偏移量

頭檔案:dos.h

fprintf()傳送輸出到一個流中的函數

原形:int fprintf(FILE *stream,const char *format[,argument,...])

功能:①向檔案指針指向的檔案輸出ASCⅡ代碼

   ②向顯示器輸出錯誤資訊

使用形式:

   ①fprintf(檔案指針,"輸出格式",輸出項系列);

   ②fprintf(stderr,"錯誤資訊");

使用執行個體:fprintf(stream,"%d %c %f",i,c,f);

     其中定義FILE *stream;

         int i; char c; float f;

傳回值:成功則傳回輸出的位元組數,錯誤則傳回EOF。

頭檔案:stdio.h

FP_SEG()擷取遠位址段值的宏

原形:unsigned FP_SEG(void far *p)

功能:取得和設定遠指針*p段位址值

傳回值:段位址值

頭檔案:dos.h

free()釋放已配置設定記憶體的函數

原形:void free(void *block)

功能:釋放由calloc、malloc、realloc函數調用所配置設定的記憶體。

頭檔案:stdlib.h、alloc.h

fscanf()格式化輸入函數

原形:int fscanf(FILE *stream,const char *format[,address,...])

功能:從一個流中掃描輸入字段,一次掃描一個字元,每個輸入字段根據format所指格式訓示符格式化後,把輸入字段存在format後面由位址參數給出的位置上。

使用格式:fscanf(檔案指針,"輸入格式",輸入項系列);

使用執行個體:fscanf(fp,"%d",&b);

   從fp指向的檔案中讀取十進制整數 (ASCⅡ形式)賦予變量b

注:當檔案指針是stdin時,與scanf功能完全相同

頭檔案:stdio.h

fseek()移動檔案指針函數

原形:int fseek(FILE *stream,long offset,int whence)

作用:強制一個檔案的位置指針指向某個特定的位置(甚至超出檔案的尾部)。

使用格式:fseek(*檔案指針,偏移(長整型),起點)

     定義 FILE *檔案指針名;

     "起點"取值:

     0或SEEK_SET(表示檔案開頭)

     1或SEEK_CUR(表示目前位置)

     2或SEEK_END(表示檔案尾端)

傳回值:0表示成功,非0值表示失敗

頭檔案:stdio.h

fwrite()把參數寫入流中的函數

原形:size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream)

功能:附加n個資料項(每個資料項長度為size個位元組)到指定的輸出檔案後,資料從ptr處開始添加。ptr是指向任意對象的指針。

傳回值:調用成功時傳回實際寫的資料項數,出錯時傳回一短整形數值。

頭檔案:stdio.h

例:fwrite(&s,sizeof(s),1,stream);

  其中s是一結構變量,stream=fopen();

gcvt()把雙精度數轉化成字元串的函數

原形∶char*gcvt(value,ndigit,buf)

  其中∶double value是待轉化數

     int ndigit是轉化長度

     char *buf儲存轉化後的位址

頭檔案∶stdlib.h

geninterrupt()執行中斷函數

原形:void geninterrupt(int n)

調用方式:geninterrupt(軟中斷号)

功能:産生一個8086軟中斷

注:需先向寄存器傳遞入口資訊(用僞變量)

  例如  僞變量=要賦的值(入口資訊);

      調用geninterrupt()函數後得接受出口資訊

  例如  變量名=僞變量

僞變量∶Turbo C 允許使用僞變量直接通路相應的8086寄存器。僞變量的類型有兩種。

  ① unsigned int : _AX、 _BX、 _CX、 _DX、 _CS、 _DS、 _SS、 _ES、_SP、 _BP、 _DI、 _SI

  ② unsigned char: _AL、 _AH、 _BL、 _BH、 _CL、 _CH、 _DL、 _DH

getc()從流中取字元的宏

原形:int getc(FILE *stream)

功能:傳回輸入流stream中一個字元,移動檔案指針使之指向下一個字元。

使用格式:字元變量=getc(檔案指針)

  (正常情況下讀取到代碼值,讀到檔案尾或出錯時傳回EOF)

注:需定義 char 字元變量;FILE *檔案指針;

頭檔案:stdio.h

getch()從鍵盤無回顯地讀取一字元的函數

功能:将鍵盤上輸入的單個字元的值(ASCⅡ 碼)立刻賦給字元型變量

調用方式:字元形變量=getch()

注:需先定義 char 字元形變量;

頭檔案:conio.h

getchar()從stdin流中讀取一個字元的函數

功能:将鍵盤上輸入的單個字元的值(ASCⅡ 碼)回車後賦給字元型變量

調用方式:字元型變量=getchar()

注:需先定義 char 字元型變量;

頭檔案:stdio.h

getcurdir()讀取指定驅動器的目前目錄的函數

原形:int getcurdir(int drive,char directory)

   drive=0(預設);1(A驅動器);...

   directory用來存放目錄名,不包括驅動器名,不以反斜杠開始。

傳回值:0(調用成功);1(出錯)

頭檔案:dir.h

getcwd()讀取目前目錄的函數

原形:char *getcwd(char *buf,int buflen)

功能:讀取目前目錄的完整路徑名(包括驅動器名),最長為buflen個位元組,存放在buf中。如果buf為NULL,函數将配置設定一個buflen位元組長的緩沖區,以後可将本函數的傳回值作為free函數的參數來釋放該緩沖區。

傳回值:若buf非空,調用成功傳回buf,出錯傳回NULL;若buf為NULL,傳回指向已經配置設定的記憶體緩沖區位址。

頭檔案:dir.h

getdate()讀取系統日期函數

原形:void getdate(pdate)

  struct date

   {

   int da_year;

   int da_day;

   int da_mon;

   };

  struct date *pdate;

頭檔案:dos.h

getdfree()讀取磁盤空閑空間的函數

原形:void getdfree(drive,dtable)

   unsigned char drive;驅動器号(0-目前;1-A;2-B;...)

   struct dfree

    {

    unsigned df_avail;//可使用的簇數

    unsigned df_total;//每個驅動器的簇數

    unsigned df_bsec;//每個扇區的位元組數

    unsigned df_sclus;//每個簇的扇區數(出錯時傳回0xffff)

    }*dtable;

功能:把由drive指定的關于驅動器的資訊傳回到dtable

getdisk()讀取目前磁盤驅動器号函數

原形:int getdisk(void)

功能:取得目前驅動器号(0=A;1=B;....)

頭檔案:dir.h

getenv()讀取環境變量的目前值的函數

原形:char *getenv(const char *name)

用法:s=getenv("環境變量名");

   需先定義char *s;

功能:傳回一給定的環境變量值,環境變量名可大寫或小寫。如果指定的變量在環境中未定義,則傳回一空串。

頭檔案:stdlib.h

getimage()将指定區域的位圖象存入記憶體的函數

原形:void far getimage(int left,int top,int right,int bottom,void far *bitmap)

功能:将圖像(矩形區域)從螢幕拷貝到記憶體,*bitmap指向記憶體中存放圖像的區域。該區域的前兩個位元組用于存放矩形的高和寬。

頭檔案:graphics.h

getmaxx()傳回螢幕上最大的X坐标值的函數

原形:int far getmaxx(void)

功能:傳回目前圖形驅動程式和圖形模式下最大的X坐标值。

頭檔案:graphics.h

getmaxy()傳回螢幕上最大的Y坐标值的函數

原形:int far getmaxy(void)

功能:傳回目前圖形驅動程式和圖形模式下最大的Y坐标值。

頭檔案:graphics.h

getpixel()讀取像素顔色的函數

原形:unsigned far getpixel(int x,int y)

頭檔案:graphics.h

getpsp()

原形∶unsigned getpsp(void)

功能∶使用DOS系統調用0x62,傳回程式段字首(PSP)的段位址

頭檔案∶dos.h

gets()從标準輸入流stdio中讀取一字元串的函數

功能:将鍵盤上輸入的字元串立刻賦予字元串變量并顯示出來

調用方式:gets(字元串變量名)

注:需定義 char *字元串變量名;

gettime()讀取系統時間的函數

原形:void gettime(ptime)

  struct time

   {

   unsigned char ti_min;

   unsigned char ti_hour;

   unsigned char ti_hund;//百分之一秒

   unsigned char ti_sec;

   };

  struct time *ptime;

getvect()讀取中斷向量函數

原形:void interrupt(*getvect(int interruptno))

功能:讀入由interruptno(0-255之間)所指定的中斷向量值,并把該中斷向量值作為中斷函數的遠指針傳回。

傳回值:指定中斷向量的目前4位元組值。

頭檔案:dos.h

使用執行個體:oldfunc=getvect(5);

     先定義void interrupt(*oldfunc)();

     用後恢複setvect(5,oldfunc);

getx()傳回目前圖形方式下位置的X坐标值的函數

原形:int far getx(void);

頭檔案:graphics.h

gety()傳回目前圖形方式下位置的Y坐标值的函數

原形:int far gety(void);

頭檔案:graphics.h

imagesize()傳回儲存圖像緩沖區大小的函數

原形:unsigned far imagesize(int left,int top,int right,int bottom)

功能:确定儲存圖像所需的存儲區大小。

傳回值:傳回存儲區的大小(位元組),若所需記憶體大于等于64K-1位元組,則傳回0xffff(-1)。

頭檔案:graphics.h

initgraph()顯示模式控制函數(初始化圖形系統函數)

功能:把圖形擴充卡設定為一種圖形模式,将選擇的圖形驅動程式(在BGI檔案中)裝入到記憶體。

調用方式:

 void far initgraph(int far *driver,int far *mode,char far*path)

 其中: *driver可以是數值(0-10),也可是符号值(DETECT、CGA、MCGA、EGA、EGA64、EGAMONO、RESERVED、HERCMONO、ATT400、VGA、 PC3270)。

    *mode參數從圖形系統為各種常用的圖形擴充卡設定的圖形模式中(CGAC0、…、IBM8514HI--見頭檔案graphics.h)選取。常用的有:VGAMED或1(640×350)(等效于BIOS的模式15)、EGAHI或1(640×350)等。

    path指向的字元串為裝入驅動程式的路徑。如果預設路徑,驅動程式在目前目錄。

結束方法:

  ①void far closegraph()函數用于當程式還要繼續在字元模下運作時。它釋放由圖形函數所占用的記憶體,同時把螢幕模式恢複為調用initgraph()之前的模式。

  ②void far restorecrtmode()函數用于結束運作。将圖形擴充卡設定到原來的模式。任何配置設定的記憶體都将自動釋放。

頭檔案:graphics.h

inport()從端口中讀入一個字的函數

原形:int inport(int portid)

調用方式:整型變量=inport(0x端口号);

功能:從指定端口位址讀一個字。

頭檔案:dos.h

inportb()從端口讀入一個位元組的函數

原形:unsigned char inportb(int portid)

調用方式:字元變量=inportb(0x端口号);

功能:從指定端口位址讀一個位元組。

頭檔案:dos.h

int86()執行中斷函數(調用8086軟中斷函數)

原形:int int86(int intno,union REGS *inregs,union REGS *outregs)

調用方式:int86(中斷号,&輸入指針名,&輸出指針名)

傳回值:中斷處理結束時的AX寄存器的值,錯誤時outregs->x.cflag!=0

功能:函數int86() 用來執行指定的8086軟中斷。首先把輸入指針所指的共用體中的内容拷貝到CPU 的寄存器中,随即産生對應的中斷,傳回後将CPU寄存器(AX)的内容拷貝到輸出指針指向的共用體中。在使用int86() 函數進行BIOS接口的系統調用時,有的中斷調用設有若幹選擇項,這些選擇項可以根據調用時AH寄存器中的值來進行通路。

注:1.需先定義 union REGS 輸入指針名,輸出指針名;

  2.向寄存器傳遞入口資訊

   輸入指針名.x.寄存器名=要賦的值(入口資訊);

  3.調用int86後得接受出口資訊

   變量名=輸出指針名.x.寄存器名

  4.REGS的定義(在dos.h中):

   struct WORDREGS{unsigned int ax, bx, cx, dx, si, di, cflag, flags;}

   struct BYTEREGS{unsigned char al, ah, bl, bh, cl, ch, dl, dh;}

   union REGS{struct WORDREGS x;struct BYTEREGS h;}

頭檔案:dos.h

int86x()執行中斷函數 (通用8086軟中斷接口函數)

頭檔案:dos.h

原形:int int86x(int intno,union REGS *inregs,union REGS *outregs,struct SREGS * segregs)

調用方式:int86x(中斷号,&輸入指針名,&輸出指針名,&段寄存器指針名);

注1:需先定義 union REGS 輸入指針名,輸出指針名;

           union REGS 示意圖

         struct     struct

        WORDREGS    BYTEREGS

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

    │  │       │   al   │ 1 byte   │

    │  │   ax   ├──────┤──┴─ 2 bytes

    │  │       │   ah   │       │

    │  ├───────┼──────┤─────  ┘

    │  │       │   bl   │

    │  │   bx   ├──────┤

    │  │       │   bh   │

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

    │  │       │   cl   │

    │  │   cx   ├──────┤

    │  │       │   ch   │

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

    │  │       │   dl   │

    │  │   dx   ├──────┤

    │  │       │   dh   │

 union regs├───────┼──────┤

    │  │       │      │

    │  │   si   │      │

    │  │       │      │

    │  ├───────┤      │

    │  │       │      │

    │  │   di   │      │

    │  │       │      │

    │  ├───────┤      │

    │  │       │      │

    │  │  cflag   │      │

    │  │       │      │

    │  ├───────┤      │

    │  │       │      │

    │  │  flags   │      │

    │  │       │      │

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

      │   x 兩個結構變量 h  │

      └──  共享同一存儲域 ──┘

  其中字段flags對應于标志寄存器。字段cflag僅對應于進位标志位,函數在調用時不用該字段,隻在傳回時設定這個字段,因為許多BIOS服務都是通過進位标置為0還是1來表示成功還是失敗。

注2:需先定義 struct SREGS 段寄存器指針名;

  結構SREGS定義如下

   struct SREGS {unsigned int es,cs,ss,ds}

  函數隻用了該結構中的段寄存器DS和ES。調用時根據它們的值設定DS和ES,同時把DS和ES原來的值儲存在這個結構中,傳回時再恢複DS和ES為原來的值,這就允許程式使用遠指針或大資料編譯模式。

  該函數置全局變量_doserrno等于寄存器AX中的值,其傳回值也等于AX中的值。

注3:向寄存器傳遞入口資訊

  輸入指針名.x.寄存器名=要賦的值(入口資訊);

注4:調用int86x後得接受出口資訊

  變量名=輸出指針名.x.寄存器名

intdos()通用dos中斷接口函數

原形:int intdos(inregs,outregs)

   union REGS *inregs;//調用時的各寄存器的值

   union REGS *outregs;//傳回寄存器的值

功能:産生DOS軟中斷

注意:如果需要功能号,則裝入AH;如果需要子功能号,則裝入AL。

頭檔案:dos.h

intdosx()通用dos中斷接口函數

原形:int intdosx(inregs,outregs,segregs)

   union REGS *inregs;調用時的各寄存器的值

   union REGS *outregs;傳回寄存器的值

   struct SREGS *seregs;調用時的段寄存器的值(還設定傳回時的值)

功能:産生DOS軟中斷

頭檔案:dos.h

intr()執行8086軟中斷函數(改變軟中斷接口函數)

原形:void intr(int intno,struct REGPACK *preg)

調用方式:intr(中斷号,&結構變量名)

注1:結構REGPACK定義如下

  struct REGPACK

   {

   unsigned r_ax,r_bx,r_cx,r_dx;

   unsigned r_bp,r_si,r_di,r_ds,r_es,r_flag;}

注2:使用時先定義一個結構變量

  struct REGPACK 結構變量名;

注3:入口和出口用同一個結構變量來傳遞寄存器的值。

  結構變量名.r_ax=要賦的值;

   ......

  intr(中斷号,&結構變量名);

  某變量=結構變量名.r_ax;

頭檔案:dos.h

itoa()把整形數轉換為字元串的函數

原形:char *itoa(int value,char *string,int radix)

功能:把value的值轉換為以NULL結束的字元串,并把結果存在string中。radix是轉換的基數值,在2到36之間。配置設定給string的空間必須可容納傳回的所有位元組(最多17位元組)。

傳回值:指向string的指針

頭檔案:stdlib.h

kbhit()檢查目前按下的鍵的函數

原形:int kbhit(void)

功能:檢查按下的鍵是否有效,若有效則可用getch()或getche()讀取。

傳回值:如果按鍵有效,傳回一非零值,否則傳回0。

頭檔案:conio.h

keep()駐留并退出函數

原形:void keep(unsigned char status,unsigned size)

功能:用于安裝一個TSR程式(使用DOS功能調用0x31)。出口狀态設定為在status中的值,程式占用存儲空間為size,并釋放記憶體的其餘部分。

頭檔案:dos.h

log()

原形∶double log(double num)

功能∶求num的自然對數值

頭檔案∶math.h

log10()

原形∶double log10(double num)

功能∶求num以10為底的對數值

頭檔案∶math.h

_lrotl()将一個無符号長整形數左循環移位的函數

原形:unsigned long _lrotl(unsigned long value,int count)

功能:将value向左循環移動count位。

傳回值:将value向左循環移動count位後的值。

頭檔案:stdlib.h

_lrotr()将一個無符号長整形數右循環移位的函數

原形:unsigned long _lrotr(unsigned long value,int count)

功能:将value向右循環移動count位。

傳回值:将value向右循環移動count位後的值。

頭檔案:stdlib.h

lseek()移動檔案指針函數

原形:long lseek(int handle,long offset,int fromwhere)

   handle=open()函數的傳回值(檔案句柄);

   fromwhere=檔案位置

    (SEEK_SET(0)從檔案頭位置;SEEK_CUR(1)從目前檔案指針位置;SEEK_END(2)從檔案結尾位置)

功能:把檔案指針移動到fromwhere所指的位址加上offset新位置的偏移上。

頭檔案:io.h

傳回值:指針新位置的偏移量(相對于檔案開始處),出錯時傳回-1L。

ltoa()把長整形數轉換為字元串的函數

原形:char *ltoa(long value,char *string,int radix)

功能:把value的值轉換為以NULL結束的字元串,并把結果存在string中。radix是轉換的基數值,在2到36之間。配置設定給string的空間必須可容納傳回的所有位元組(最多33位元組)。

傳回值:指向string的指針

頭檔案:stdlib.h

malloc()配置設定記憶體函數

原形:void *malloc(size_t size)

功能:從堆中配置設定大小為size位元組的塊。win32也适用。

傳回值:傳回新配置設定記憶體的位址,若無足夠記憶體,傳回NULL。

頭檔案:alloc.h、stdlib.h

mkdir()建立目錄函數

原形:int mkdir(const char *path)

功能:按給定的路徑建立一個新的目錄

頭檔案:dir.h

傳回值:0(成功);-1(失敗)

mktemp()建立一個唯一的檔案名的函數

原形:char *mktemp(char *template)

功能:使用一個唯一的檔案名來替換字元串template,并傳回template。

頭檔案:dir.h

MK_FP()設定一個遠指針的宏

原形:void far *MK_FP(unsigned seg,unsigned ofs)

功能:通過段值(seg)和偏移量(ofs)建立一個遠指針

傳回值:遠指針

頭檔案:dos.h

movedata()拷貝資料函數

原形:void movedata(unsigned srcseg,unsigned srcoff,unsigned dstseg,unsigned dstoff,size_t n)

功能:從原位址(srcseg:srcoff)拷貝n個位元組的資料到目标位址(dstseg:dstoff)。

頭檔案:mem.h、string.h

_open()打開一個檔案進行讀寫的函數

原形:int _open(path,oflags)

   char *path;//已建立檔案的路徑名

   int oflags;//方式

功能:打開由path指定的檔案,傳回檔案的句柄

傳回值:0(正常結束);-1(錯誤)

頭檔案:fcntl.h、io.h

open()打開檔案進行讀寫的函數

原形:int open(const char *path,int access[,unsigned mode])

使用方法:檔案句柄=open("檔案名",打開模式|打開模式);

功能:打開path指定的檔案,根據access指定的模式值讀寫。

  access模式:

   O_RDONLY 以隻讀方式打開

   O_WRONLY 以隻寫方式打開

   O_RDOWR  以讀寫方式打開

  以上标志隻能使用一個,以下可以用|組合使用

   O_NDELAY

   O_APPEND 若置位,每次寫操作前都使檔案指針指到檔案末尾

   O_CREAT  若檔案不存在則建立

   O_TRUNC  若檔案已存在,則将檔案長度截為0

   O_EXCL  隻和O_CREAT一起使用,若檔案已經存在,傳回錯誤代碼

   O_BINARY 以二進制方式打開

   O_TEXT  以文本方式打開

  如果使用了O_CREAT方式,則需要提供參數mode

  (S_IWRITE可寫;S_IREAD可讀;S_IREAD|S_IWRITE可讀寫)

傳回值:檔案句柄(成功時);-1(失敗時)。

    成功時,檔案指針指向檔案頭。

頭檔案:fcntl.h、io.h

outport()輸出一個字到端口中的函數

原形:void outport(int portid,int value)

調用方式:outport(0x端口号,要輸出的字);

功能:往指定端口位址輸出一個字。

頭檔案:dos.h

outportb()輸出一個位元組到端口中的函數

原形:void outportb(int portid,unsigned char value)

調用方式:outportb(0x端口号,要輸出的位元組);

功能:往指定端口位址輸出一個位元組。

附:PC I/O位址配置設定

  PC隻用了10位位址線(A0-A9)進行譯碼,其尋址的範圍為0H-3FFH,共有1024個I/O位址。這1024個位址中前半段(A9=0,範圍為0H-1FFH)是屬于主機闆I/O譯碼,後半段(A9=1,範圍為200H-3FFH)則是用來擴充插槽上的I/O譯碼用。

         I/O端口功能表

———————————————————————————

I/O位址 功能、用途

———————————————————————————

0    DMA通道0,記憶體位址寄存器(DMA控制器1(8237))

1    DMA通道0, 傳輸計數寄存器

2    DMA通道1,記憶體位址寄存器

3    DMA通道1, 傳輸計數寄存器

4    DMA通道2,記憶體位址寄存器

5    DMA通道2, 傳輸計數寄存器

6    DMA通道3,記憶體位址寄存器

7    DMA通道3, 傳輸計數寄存器

8    DMA通道0-3的狀态寄存器

AH    DMA通道0-3的屏蔽寄存器

BH    DMA通道0-3的方式寄存器

CH    DMA清除位元組指針

DH    DMA主清除位元組

EH    DMA通道0-3的清屏蔽寄存器

FH    DMA通道0-3的寫屏蔽寄存器

19H   DMA起始寄存器

20H-3FH 可程式設計中斷控制器1(8259)使用

40H   可程式設計中斷計時器(8253)使用,讀/寫計數器0

41H   可程式設計中斷計時器寄存器

42H   可程式設計中斷計時器雜項寄存器

43H   可程式設計中斷計時器,控制字寄存器

44H   可程式設計中斷計時器,雜項寄存器(AT)

47H   可程式設計中斷計時器,計數器0的控制字寄存器

48H-5FH 可程式設計中斷計時器使用

60H-61H 鍵盤輸入資料緩沖區

61H   AT:8042鍵盤控制寄存器/XT:8255輸出寄存器

62H   8255輸入寄存器

63H   8255指令方式寄存器

64H   8042鍵盤輸入緩沖區/8042狀态

65H-6FH 8255/8042專用

70H   CMOS RAM位址寄存器

71H   CMOS RAM資料寄存器

80H   生産測試端口

81H   DMA通道2,頁表位址寄存器

82H   DMA通道3,頁表位址寄存器

83H   DMA通道1,頁表位址寄存器

87H   DMA通道0,頁表位址寄存器

89H   DMA通道6,頁表位址寄存器

8AH   DMA通道7,頁表位址寄存器

8BH   DMA通道5,頁表位址寄存器

8FH   DMA通道4,頁表位址寄存器

93H-9FH DMA控制器專用

A0H   NM1屏蔽寄存器/可程式設計中斷控制器2

A1H   可程式設計中斷控制器2屏蔽

C0H   DMA通道0,記憶體位址寄存器(DMA控制器2(8237))

C2H   DMA通道0, 傳輸計數寄存器

C4H   DMA通道1,記憶體位址寄存器

C6H   DMA通道1, 傳輸計數寄存器

C8H   DMA通道2,記憶體位址寄存器

CAH   DMA通道2, 傳輸計數寄存器

CCH   DMA通道3,記憶體位址寄存器

CEH   DMA通道3, 傳輸計數寄存器

D0H   DMA狀态寄存器

D2H   DMA寫請求寄存器

D4H   DMA屏蔽寄存器

D6H   DMA方式寄存器

D8H   DMA清除位元組指針

DAH   DMA主清

DCH   DMA清屏蔽寄存器

DEH   DMA寫屏蔽寄存器

DFH-EFH 保留

F0H-FFH 協處理器使用

100H-16FH保留

170H   1号硬碟資料寄存器

171H   1号硬碟錯誤寄存器

172H   1号硬碟資料扇區計數

173H   1号硬碟扇區數

174H   1号硬碟柱面(低位元組)

175H   1号硬碟柱面(高位元組)

176H   1号硬碟驅動器/磁頭寄存器

177H   1号硬碟狀态寄存器

1F0H   0号硬碟資料寄存器

1F1H   0号硬碟錯誤寄存器

1F2H   0号硬碟資料扇區計數

1F3H   0号硬碟扇區數

1F4H   0号硬碟柱面(低位元組)

1F5H   0号硬碟柱面(高位元組)

1F6H   0号硬碟驅動器/磁頭寄存器

1F7H   0号硬碟狀态寄存器

1F9H-1FFH保留

200H-20FH遊戲控制端口

210H-21FH擴充單元

278H   3号并行口,資料端口

279H   3号并行口,狀态端口

27AH   3号并行口,控制端口

2B0H-2DFH保留

2E0H   EGA/VGA使用

2E1H   GPIP(0号擴充卡)

2E2H   資料擷取(0号擴充卡)

2E3H   資料擷取(1号擴充卡)

2E4H-2F7H保留

2F8H   2号串行口,發送/保持寄存器(RS232接口卡2)

2F9H   2号串行口,中斷有效寄存器

2FAH   2号串行口,中斷ID寄存器

2FBH   2号串行口,線控制寄存器

2FCH   2号串行口,調制解調控制寄存器

2FDH   2号串行口,線狀态寄存器

2FEH   2号串行口,調制解調狀态寄存器

2FFH   保留

300H-31FH原形卡

320H   硬碟擴充卡寄存器

322H   硬碟擴充卡控制/狀态寄存器

324H   硬碟擴充卡提示/中斷狀态寄存器

325H-347H保留

348H-357H DCA3278

366H-36FH PC網絡

372H    軟碟擴充卡資料輸出/狀态寄存器

375H-376H 軟碟擴充卡資料寄存器

377H    軟碟擴充卡資料輸入寄存器

378H    2号并行口,資料端口

379H    2号并行口,狀态端口

37AH    2号并行口,控制端口

380H-38FH SDLC及BSC通訊

390H-393H Cluster擴充卡0

3A0H-3AFH BSC通訊

3B0H-3B H MDA視訊寄存器

3BCH    1号并行口,資料端口

3BDH    1号并行口,狀态端口

3BEH    1号并行口,控制端口

3C0H-3CFH EGA/VGA視訊寄存器

3D0H-3D7H CGA視訊寄存器

3F0H-3F7H 軟碟控制器寄存器

3F8H    1号串行口,發送/保持寄存器(RS232接口卡1)

3F9H    1号串行口,中斷有效寄存器

3FAH    1号串行口,中斷ID寄存器

3FBH    1号串行口,線控制寄存器

3FCH    1号串行口,調制解調控制寄存器

3FDH    1号串行口,線狀态寄存器

3FEH    1号串行口,調制解調狀态寄存器

3FFH    保留

—————————————————————————-

outtextxy()在指定位置顯示一字元串的函數

原形:void far outtextxy(int x,int y,char far *textstring)

功能:按照目前對齊方式和目前字型、方向、大小在視區中給定位置顯示一文本字元串。

注意:用textwidth和textheight函數決定字元串的尺寸大小。

頭檔案:graphics.h

peek()傳回指定記憶體中字的函數

原形:int peek(int seg,unsigned offset)

功能:傳回位址為seg:offset的字單元的值

頭檔案:dos.h

peekb()傳回指定記憶體中位元組的函數

原形:char peekb(int seg,unsigned offset)

功能:傳回位址為seg:offset的位元組單元的值

poke()在指定的記憶體中存儲一個字的函數

原形:void poke(int seg,unsigned offset,int word)

功能:把word的16位值放到位址為seg:offset的字單元中

pokeb()在指定的記憶體中存儲一個位元組的函數

原形:void pokeb(int seg,unsigned offset,int byte)

功能:把byte的8位值放到位址為seg:offset的位元組單元中

pow()

原形∶double pow(double b,double exp)

功能∶求以b為底的exp次幂的值

頭檔案∶math.h

printf()寫格式化輸出到stdout的函數

使用方式:例

  ①printf("%f",實型變量);

  ②printf("%f",(*函數指針名)(參數));

  ③printf("%c",字元變量);

  ④printf("%c",*字元串變量名即字元串位址);

   隻顯示字元串的第一個字元。

  ⑤printf("%s",字元串數組名即字元串數組位址);

  ⑥printf("%-10s",字元串變量名);

   顯示字元串時限定十位(不足則補空格),并靠左端對齊。

  ⑦printf("%s",*二級指針變量);

  ⑧printf("字元串%05d/n",整型變量);

   先顯示字元串,然後顯示整型變量的值(限五位,不足則補零),最後換行。

注:

 1.① 需先定義 float 實型變量;

  ② 需先定義 float (*函數指針名)(); 并有相應的函數

  ③ 需先定義 char 字元變量='單個字元';

  ④⑥需先定義 char *字元串變量名; 并指派

  ⑤ 需先定義 char 字元串數組名[]="字元串";

  ⑦ 需先定義 char **二級指針變量

 2.其它轉換字元(在%後)有

  ① o 整型數以無符号的八進制形式輸出

  ② x 整型數和僞變量以無符号的十六進制形式輸出

  ③ u 整型數以無符号的十進制形式輸出

  ④ e 浮點數或雙精度浮點數以指數形式輸出

  ⑤ g 選用e或f格式中輸出位數較短的形式

  ⑥ p 以無符号的十六進制形式輸出變量的位址。若要輸出函數的位址,遠指針用Fp;近指針用Np。

putch()向螢幕輸出字元的函數

使用方式:

 ① putch('轉義字元');

 ② putch('單個字元');

 ③ putch(字元變量);

注:③需先定義 char 字元變量='單個字元';

頭檔案:conio.h

putchar()在stdout上輸出字元的宏

原形:int putchar(int c)

傳回值:成功傳回字元c,失敗傳回EOF。

頭檔案:stdio.h

putenv()将字元串放入目前環境中的函數

原形:int putenv(const char *name)

用法例:putenv("PATH=C:/B/TC");

功能:把字元串name加到目前程式運作的環境中。當程式結束後,原環境将得到恢複。

傳回值:0(成功);-1(失敗)

頭檔案:stdlib.h

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

功能:将用getimage()函數儲存在buf 所指向的記憶體區域的圖形輸出到螢幕上。

原形:

 void far putimage(int left,int top,void far *buf,int op)

  其中op的值決定了圖形以何種方式寫到螢幕上。

  COPY_PUT 或0 原樣複制

  XOR_PUT 或1 與螢幕圖形取“異或”後寫入

  OR_PUT 或2 與螢幕圖形取“或”後寫入

  AND_PUT 或3 與螢幕圖形取“與”後寫入

  NOT_PUT 或4 複制原圖形的“逆”

  使用不同的方式将圖形寫到螢幕上,可以實作圖形變換。例如,采用異或方式在原始位置重寫,那麼,原圖将消失。 如果再使用複制方式(COPY_PUT)在一個新的地方重制該圖形,就産生了圖形的移動。

頭檔案:graphics.h

putpixel()寫像素點函數

原形:void far putpixel(int x,int y,int color)

頭檔案:graphics.h

puts()輸出一字元串到stdout(标準輸出)的函數

使用方式:

  ① puts("字元串");

  ② puts(字元串變量名即字元串變量的位址)

注:②需先定義 char *字元串變量名="字元串";

頭檔案:stdio.h

_read()讀檔案函數

原形:int _read(handle,buffer,count)

   int handle;//檔案句柄

   void *buffer;//存放讀出資料的緩沖區

   unsigned count;//一次讀出的位元組數

功能:從由handle指定的檔案中讀取由count指定位元組數的資料到buffer

傳回值:0-0xfffe(實際讀出的位元組數);-1(錯誤)

頭檔案:io.h

read()讀檔案函數

原形:int read(int handle,void *buf,unsigned len)

功能:從與handle(從creat、open、dup或dup2調用中得到的句柄)相聯的檔案中讀取len位元組到由buf所指的緩沖區中。對于以文本方式打開的檔案,read删除讀入資料中的回車符。當讀到Ctrl-Z字元時傳回檔案結束。對于磁盤檔案,read從目前檔案指針處開始讀取資料。在讀操作完成後,檔案指針增量為讀入的位元組數。對于裝置,直接從裝置中讀位元組。

傳回值:讀入緩沖區的位元組數,如果檔案以文本方式打開,則不包括回車符和Ctrl-Z字元。

頭檔案:io.h

realloc()重新配置設定記憶體函數

原形:void *realloc(void *block,size_t size)

   block指向用malloc、calloc或realloc已得到的記憶體。

   size是重新配置設定的位元組。

傳回值:重配置設定的塊位址。若不能重配置設定,則傳回NULL。

頭檔案:stdlib.h

rectangle()畫一個矩形的函數

原形:void far rectangle(int left,int top,int right,int bottom)

功能:用目前線性、寬度和畫線顔色繪制一個矩形。

頭檔案:graphics.h

remove()删除一個檔案的函數

原形:int remove(const char *filename)

傳回值:0(成功);-1(失敗)

頭檔案:stdio.h

rename()檔案改名函數

原形:int rename(const char *oldname,const char *newname)

注意:如果newname中包含了一個驅動器訓示符,它必須與oldname中給出的訓示符相同。oldname和newname中的目錄可以不同,是以rename函數把檔案從一個目錄移到另一個目錄。不允許使用通配符。

傳回值:0(成功);-1(失敗)

restorecrtmode()恢複螢幕視訊模式為調用initgraph前的設定的函數

原形:void far restorecrtmode(void)

頭檔案:graphics.h

rmdir()删除目錄函數

原形:int rmdir(const char *path)

注意:删除的目錄不能是目前目錄,不是根目錄,是空目錄

傳回值:0(成功);-1(操作出錯)

頭檔案:dir.h

_rotl()将一個無符号整形數左循環移位的函數

原形:unsigned _rotl(unsigned value,int count)

功能:将value向左循環移動count位。

傳回值:将value向左循環移動count位後的值。

頭檔案:stdlib.h

_rotr()将一個無符号整形數右循環移位的函數

原形:unsigned _rotr(unsigned value,int count)

功能:将value向右循環移動count位。

傳回值:将value向右循環移動count位後的值。

頭檔案:stdlib.h

scanf()格式化輸入函數

使用格式:scanf("輸入格式",輸入項系列)

 ① scanf("%f",&實型變量)

 ② scanf("%c",&字元變量)

 ③ scanf("%s",字元串變量)

 ④ scanf("%d",&整型變量)

注:需先定義以上各種變量如 char *字元串變量;

searchpath()按dos路徑查找一個檔案的函數

原形:char *searchpath(const char *file)

用法:p=searchpath("檔案名"); 先定義char *p;

功能:搜尋dos路徑(環境變量中的path=....)來定位由file給出的檔案。

傳回值:指向完整路徑名字元串的指針。定位失敗傳回NULL。

頭檔案:dir.h

segread()讀段寄存器函數

原形:void segread(struct SREGS *segp)

作用:把目前寄存器的值儲存到SREGS型機構變量segp中。

   segs.cs=代碼段寄存器的值;

   segs.ds=資料段寄存器的值;

   segs.es=附加段寄存器的值;

   segs.ss=堆棧段寄存器的值;

setactivepage()設定圖形輸出活動頁的函數

原形:void far setactivepage(int page)

功能:使page成為目前活動的圖形頁,其後所有的圖形輸出操作都在page圖形頁進行。活動圖形頁可以不是在螢幕上看到的頁。

頭檔案:graphics.h

setcolor()設定目前要畫的線顔色的函數

原形:void far setcolor(int color)

頭檔案:graphics.h

注意:顔色值(EGA/VGA)

   0-BLACK;   1-BLUE;    2-GREEN;

   3-CYAN;    4-RED;    5-MAGENTA;

   6-BROWN;   7-LIGHTGRAY; 8-DARKGRAY;

   9-LIGHTBLUE; 10-LIGHTGREEN;11-LIGHTCYAN;

   12-LIGHTRED; 13-LIGHTMAGENTA;

   14-YELLOW;  15-WHITE

setdisk()設定目前驅動器的函數

原形:int setdisk(int drive)

功能:把由drive指定的驅動器修改成目前驅動器,傳回可使用的驅動器數。

頭檔案:dir.h

setgraphmode()将系統設定成圖形模式并清屏的函數

原形:void far setgraphmode(int mode)

功能:選擇一個不同于調用initgraph()函數時所設定的預設的圖形模式。

傳回值:如果給了一個對目前驅動程式來說無效的模式,則傳回-10。

頭檔案:graphics.h

setlinestyle()設定目前畫線寬度和類型的函數

原形:

void far setlinestyle(int linestyle,unsigned upattern,int thickness)

 其中:linestyle=0為實線;1為點線;2為中心線;3為破折線;4為使用者定義。

    thickness=1為一個像素寬;3為三個像素寬。

    隻有當linestyle=4時,upattern才起作用。

頭檔案:graphics.h

settextstyle()顯示字元的目前設定函數

功能:設定目前輸出英文字元的字型、大小和方向。

調用方式:

void far settextstyle(int font,int direction,int charsize)

  其中①參數font确定所標明的字型形狀,

     DEFAULT_FONT 或0 是8×8位圖字型

     TRIPLEX_FONT 或1 是三重矢量字型

     SMALL_FONT 或2 是小号矢量字型

     SANS_SERIF_FONT或3 是無襯線矢量字型

     GOTHIC_FONT 或4 是哥特矢量字型

    ②參數durection字元的顯示方向,

     HORIZ_DIR 或0 是水準方向

     VERT_DIR 或1 是垂直方向

    ③參數charsize表示字元放大的倍數,其值為0到10。

setvect()設定中斷向量函數

setvect(int 中斷号,void interrupt(*中斷函數名))

功能:把中斷服務程式的位址裝入中斷向量表中。

調用方法:setvect(中斷号,中斷函數名即位址);

 (1)得預先定義要代替原函數的新函數

  void interrupt 中斷函數名(void)

   {......}

 (2)得先保留原中斷函數位址

  void interrupt (*保留函數名)(void);

  保留函數名=getvect(中斷号);

 (3)事後得将原中斷函數位址裝回向量表中

  setvect(中斷号,保留函數名);

setviewport()建立視口的函數

原形: void far setviewport(int left,int top,int right,int bottom,int clip)

功能:用左上角坐标left,top和右下角坐标right,bottom建立一個視口,如果clip為1,則超出視口的輸出自動被剪裁掉;如果clip為0,則不被剪裁。

例:setviewport(0,0,100,100,1)建立對角線為0,0和100,100的視口,并帶有剪裁功能。

注:要清除目前視口,用函數clearnviewport()。

setvisualpage()設定可見的圖形頁号的函數

原形:void far setvisualpage(int page)

功能:使得page成為可見的圖形頁。

頭檔案:graphics.h

sin()

原形∶double sin(double arg)

功能∶計算arg(弧度)的正弦值

頭檔案∶math.h

sprintf()格式化輸出到數組的函數

原形∶int sprintf(buf,format,arg_list)

   其中char *buf;

功能∶把arg_list參量的值按format的格式輸出到buf中。

例∶sprintf(buffer,"相對扇區号∶%s(其中∶柱面号為%d/磁頭号為%d/扇區号為%d)",string,cyls,head,sector);

  其中char buffer[100];

    char *string="  ";

    int cyls,head,sector;

傳回值∶實際寫入數組的字元個數。

頭檔案∶stdio.h

strcat()

原形∶char *strcat(str1,str2)

功能∶把str2所指的字元串連接配接到str1所指的字元串後。

傳回值∶指向str1的指針。

tan()

原形∶double tan(double arg)

功能∶計算arg(弧度)的正切值

頭檔案∶math.h

_write()寫檔案函數

原形:int _write(handle,buffer,count)

   int handle;//檔案的句柄

   void *buffer;//存放資料的緩沖區

   unsigned count;//寫入的位元組數

功能:從由buffer指定的緩沖區寫入由count指定位元組數的資料到由handle指定的檔案。傳回實際寫入的位元組數。

傳回值:0-0xfffe(實際寫入的位元組數);-1(錯誤)

頭檔案:io.h

write()寫檔案函數

原形:int write(int handle,char *buf,unsigned len)

用法:write(檔案句柄,緩沖區位址,緩沖區位元組長度<最大65534>);

功能:将緩沖區的資料寫入與handle相聯的檔案或裝置中,handle是從creat、open、dup或dup2調用中得到的檔案句柄。對于磁盤或磁盤檔案,寫操作從目前檔案指針處開始,對于用O_APPEND選項打開的檔案,寫資料之前,檔案指針指向EOF;對于裝置,位元組被直接傳送到裝置中;

傳回值:實際寫入的位元組數(不包括回車符),出錯時傳回-1。

頭檔案:io.h

繼續閱讀