| 導購 | 订阅 | 在线投稿
分享
 
 
當前位置: 王朝網路 >> c/c++ >> C語言的常用庫函數使用方法分析及用途
 

C語言的常用庫函數使用方法分析及用途

2008-06-01 02:07:13  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
  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

  更多內容請看C/C++進階技術文檔專題,或

  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_IREADS_IWRITE 可讀可寫

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

  頭文件:io.h、sys\stat.h

  clock()

  原形∶long clock(void)

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

  頭文件∶time.h

  更多內容請看C/C++進階技術文檔專題,或

  

   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

  更多內容請看C/C++進階技術文檔專題,或

  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)

  更多內容請看C/C++進階技術文檔專題,或

  

   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

  更多內容請看C/C++進階技術文檔專題,或

  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

  更多內容請看C/C++進階技術文檔專題,或

  

   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

  更多內容請看C/C++進階技術文檔專題,或

  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

  更多內容請看C/C++進階技術文檔專題,或

  

   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 示意圖

  structstruct

  WORDREGSBYTEREGS

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

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

  更多內容請看C/C++進階技術文檔專題,或

  

   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

  更多內容請看C/C++進階技術文檔專題,或

  _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_IREADS_IWRITE可讀寫)

  返回值:文件句柄(成功時);-1(失敗時)。

  成功時,文件指針指向文件頭。

  頭文件:fcntl.h、io.h

  更多內容請看C/C++進階技術文檔專題,或

  

   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地址功能、用途

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

  0DMA通道0,內存地址寄存器(DMA控制器1(8237))

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

  2DMA通道1,內存地址寄存器

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

  4DMA通道2,內存地址寄存器

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

  6DMA通道3,內存地址寄存器

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

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

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

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

  CH DMA清除字節指針

  DH DMA主清除字節

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

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

  19HDMA起始寄存器

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

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

  41H可編程中斷計時器寄存器

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

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

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

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

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

  60H-61H鍵盤輸入數據緩沖區

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

  62H8255輸入寄存器

  63H8255命令方式寄存器

  64H8042鍵盤輸入緩沖區/8042狀態

  65H-6FH8255/8042專用

  70HCMOS RAM地址寄存器

  71HCMOS RAM數據寄存器

  80H生産測試端口

  81HDMA通道2,頁表地址寄存器

  82HDMA通道3,頁表地址寄存器

  83HDMA通道1,頁表地址寄存器

  87HDMA通道0,頁表地址寄存器

  89HDMA通道6,頁表地址寄存器

  8AHDMA通道7,頁表地址寄存器

  8BHDMA通道5,頁表地址寄存器

  8FHDMA通道4,頁表地址寄存器

  93H-9FHDMA控制器專用

  A0HNM1屏蔽寄存器/可編程中斷控制器2

  A1H可編程中斷控制器2屏蔽

  C0HDMA通道0,內存地址寄存器(DMA控制器2(8237))

  C2HDMA通道0, 傳輸計數寄存器

  C4HDMA通道1,內存地址寄存器

  C6HDMA通道1, 傳輸計數寄存器

  C8HDMA通道2,內存地址寄存器

  CAHDMA通道2, 傳輸計數寄存器

  CCHDMA通道3,內存地址寄存器

  CEHDMA通道3, 傳輸計數寄存器

  D0HDMA狀態寄存器

  D2HDMA寫請求寄存器

  D4HDMA屏蔽寄存器

  D6HDMA方式寄存器

  D8HDMA清除字節指針

  DAHDMA主清

  DCHDMA清屏蔽寄存器

  DEHDMA寫屏蔽寄存器

  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-357HDCA3278

  366H-36FHPC網絡

  372H 軟盤適配器數據輸出/狀態寄存器

  375H-376H軟盤適配器數據寄存器

  377H 軟盤適配器數據輸入寄存器

  378H 2號並行口,數據端口

  379H 2號並行口,狀態端口

  37AH 2號並行口,控制端口

  380H-38FHSDLC及BSC通訊

  390H-393HCluster適配器0

  3A0H-3AFHBSC通訊

  3B0H-3B HMDA視頻寄存器

  3BCH 1號並行口,數據端口

  3BDH 1號並行口,狀態端口

  3BEH 1號並行口,控制端口

  3C0H-3CFHEGA/VGA視頻寄存器

  3D0H-3D7HCGA視頻寄存器

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

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

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

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

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

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

  3FDH 1號串行口,線狀態寄存器

  3FEH 1號串行口,調制解調狀態寄存器

  3FFH 保留

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

  更多內容請看C/C++進階技術文檔專題,或

  

   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

  更多內容請看C/C++進階技術文檔專題,或

  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

  更多內容請看C/C++進階技術文檔專題,或

  

   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

  更多內容請看C/C++進階技術文檔專題,或

  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

  更多內容請看C/C++進階技術文檔專題,或

  

   _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

  更多內容請看C/C++進階技術文檔專題,或
 
 
 
上一篇《C++運算符重載轉換運算符》
下一篇《鏈表的C語言實現之循環鏈表及雙向鏈表》
 
 
 
 
 
 
日版寵物情人插曲《Winding Road》歌詞

日版寵物情人2017的插曲,很帶節奏感,日語的,女生唱的。 最後聽見是在第8集的時候女主手割傷了,然後男主用嘴幫她吸了一下,插曲就出來了。 歌手:Def...

兄弟共妻,我成了他們夜裏的美食

老鍾家的兩個兒子很特別,就是跟其他的人不太一樣,魔一般的執著。兄弟倆都到了要結婚的年齡了,不管自家老爹怎麽磨破嘴皮子,兄弟倆說不娶就不娶,老父母爲兄弟兩操碎了心...

如何磨出破洞牛仔褲?牛仔褲怎麽剪破洞?

把牛仔褲磨出有線的破洞 1、具體工具就是磨腳石,下面墊一個硬物,然後用磨腳石一直磨一直磨,到把那塊磨薄了,用手撕開就好了。出來的洞啊很自然的。需要貓須的話調幾...

我就是掃描下圖得到了敬業福和愛國福

先來看下敬業福和愛國福 今年春節,支付寶再次推出了“五福紅包”活動,表示要“把欠大家的敬業福都還給大家”。 今天該活動正式啓動,和去年一樣,需要收集“五福”...

冰箱異味産生的原因和臭味去除的方法

有時候我們打開冰箱就會聞到一股異味,冰箱裏的這種異味是因爲一些物質發出的氣味的混合體,聞起來讓人惡心。 産生這些異味的主要原因有以下幾點。 1、很多人有這種習...

《極品家丁》1-31集大結局分集劇情介紹

簡介 《極品家丁》講述了現代白領林晚榮無意回到古代金陵,並追隨蕭二小姐化名“林三”進入蕭府,不料卻陰差陽錯上演了一出低級家丁拼搏上位的“林三升職記”。...

李溪芮《極品家丁》片尾曲《你就是我最愛的寶寶》歌詞

你就是我最愛的寶寶 - 李溪芮 (電視劇《極品家丁》片尾曲) 作詞:常馨內 作曲:常馨內 你的眉 又鬼馬的挑 你的嘴 又壞壞的笑 上一秒吵鬧 下...

烏梅的功效與作用以及烏梅的食用禁忌有哪些?

烏梅,又稱春梅,中醫認爲,烏梅味酸,性溫,無毒,具有安心、除熱、下氣、祛痰、止渴調中、殺蟲的功效,治肢體痛、肺痨病。烏梅泡水喝能治傷寒煩熱、止吐瀉,與幹姜一起制...

什麽是脂肪粒?如何消除臉部脂肪粒?

什麽是脂肪粒 在我們的臉上總會長一個個像脂肪的小顆粒,弄也弄不掉,而且顔色還是白白的。它既不是粉刺也不是其他的任何痘痘,它就是脂肪粒。 脂肪粒雖然也是由油脂...

網絡安全治理:國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰受害者

來源:中國青年報 新的攻擊方法不斷湧現,黑客幾乎永遠占據網絡攻擊的上風,我們不可能通過技術手段杜絕網絡攻擊。國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰...

河南夫妻在溫嶺網絡直播“造人”內容涉黃被刑事拘留

夫妻網絡直播“造人”爆紅   1月9日,溫嶺城北派出所接到南京警方的協查通告,他們近期打掉了一個涉黃直播APP平台。而根據掌握的線索,其中有一對涉案的夫妻主播...

如何防止牆紙老化?牆紙變舊變黃怎麽辦?

如何防止牆紙老化? (1)選擇透氣性好的牆紙 市場上牆紙的材質分無紡布的、木纖維的、PVC的、玻璃纖維基材的、布面的等,相對而言,PVC材質的牆紙最不透氣...

鮮肌之謎非日本生産VS鮮肌之謎假日貨是謠言

觀點一:破日本銷售量的“鮮肌之謎” 非日本生産 近一段時間,淘寶上架了一款名爲“鮮肌之謎的” 鲑魚卵巢美容液,號稱是最近日本的一款推出的全新護膚品,産品本身所...

中國最美古詩詞精選摘抄

系腰裙(北宋詞人 張先) 惜霜蟾照夜雲天,朦胧影、畫勾闌。人情縱似長情月,算一年年。又能得、幾番圓。 欲寄西江題葉字,流不到、五亭前。東池始有荷新綠,尚小如...

關于女人的經典語句

關于女人的經典語句1、【做一個獨立的女人】 思想獨立:有主見、有自己的人生觀、價值觀。有上進心,永遠不放棄自己的理想,做一份自己喜愛的事業,擁有快樂和成就...

未來我們可以和性愛機器人結婚嗎?

你想體驗機器人性愛嗎?你想和性愛機器人結婚嗎?如果你想,機器人有拒絕你的權利嗎? 近日,第二屆“國際人類-機器人性愛研討會”大會在倫敦金史密斯大學落下帷幕。而...

全球最變態的十個地方

10.土耳其地下洞穴城市 變態指數:★★☆☆☆ 這是土耳其卡帕多西亞的一個著名景點,傳說是當年基督教徒們爲了躲避戰爭而在此修建。裏面曾住著20000人,...

科學家稱,人類死亡後意識將在另外一個宇宙中繼續存活

據英國《每日快報》報道,一位科學家兼理論家Robert Lanza博士宣稱,世界上並不存在人類死亡,死亡的只是身體。他認爲我們的意識借助我們體內的能量生存,而且...

《屏裏狐》片頭曲《我愛狐狸精》歌詞是什麽?

《我愛狐狸精》 - 劉馨棋   (電視劇《屏裏狐》主題曲)   作詞:金十三&李旦   作曲:劉嘉   狐狸精 狐狸仙   千年修...

 
 
 
  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 更多內容請看C/C++進階技術文檔專題,或   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_IREADS_IWRITE  可讀可寫   返回值:0(成功);-1(失敗)   頭文件:io.h、sys\stat.h   clock()   原形∶long clock(void)   功能∶測得從程序開始到調用處處理機所用的時間   頭文件∶time.h 更多內容請看C/C++進階技術文檔專題,或   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 更多內容請看C/C++進階技術文檔專題,或   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) 更多內容請看C/C++進階技術文檔專題,或   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 更多內容請看C/C++進階技術文檔專題,或   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 更多內容請看C/C++進階技術文檔專題,或   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 更多內容請看C/C++進階技術文檔專題,或   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 更多內容請看C/C++進階技術文檔專題,或   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 更多內容請看C/C++進階技術文檔專題,或   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 更多內容請看C/C++進階技術文檔專題,或   _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_IREADS_IWRITE可讀寫)   返回值:文件句柄(成功時);-1(失敗時)。   成功時,文件指針指向文件頭。   頭文件:fcntl.h、io.h 更多內容請看C/C++進階技術文檔專題,或   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    保留   —————————————————————————- 更多內容請看C/C++進階技術文檔專題,或   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 更多內容請看C/C++進階技術文檔專題,或   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 更多內容請看C/C++進階技術文檔專題,或   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 更多內容請看C/C++進階技術文檔專題,或   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 更多內容請看C/C++進階技術文檔專題,或   _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 更多內容請看C/C++進階技術文檔專題,或
󰈣󰈤
 
 
 
  免責聲明:本文僅代表作者個人觀點,與王朝網路無關。王朝網路登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
 
小龍女彤彤之情溢皇都
龔潔
智能手機形象美女
崔潔彤
回家的路上----
中國一站(哈爾濱)
清明植物園的花。
桃花堤印象之豎版
 
>>返回首頁<<
 
 熱帖排行
 
 
 
 
© 2005- 王朝網路 版權所有