C语言函数集(四)

来源:互联网 发布:js classname赋值 编辑:程序博客网 时间:2024/06/05 19:41
函数名: delay功  能: 将程序的执行暂停一段时间(毫秒)用  法: void delay(unsigned milliseconds);程序例:/* Emits a 440-Hz tone for 500 milliseconds */#include <dos.h>int main(void){   sound(440);   delay(500);   nosound();   return 0;}函数名: delline功  能: 在文本窗口中删去一行用  法: void delline(void);程序例:#include <conio.h>int main(void){   clrscr();   cprintf("The function DELLINE deletes \    the line containing the\r\n");   cprintf("cursor and moves all lines \    below it one line up.\r\n");   cprintf("DELLINE operates within the \    currently active text\r\n");   cprintf("window.  Press any key to \    continue . . .");   gotoxy(1,2);  /* Move the cursor to the      second line and first column */   getch();   delline();   getch();   return 0;}函数名: detectgraph功  能: 通过检测硬件确定图形驱动程序和模式用  法: void far detectgraph(int far *graphdriver, int far *graphmode);程序例:#include <graphics.h>#include <stdlib.h>#include <stdio.h>#include <conio.h>/* names of the various cards supported */char *dname[] = { "requests detection",    "a CGA",    "an MCGA",    "an EGA",    "a 64K EGA",    "a monochrome EGA",    "an IBM 8514",    "a Hercules monochrome",    "an AT&T 6300 PC",    "a VGA",    "an IBM 3270 PC"  };int main(void){   /* returns detected hardware info. */   int gdriver, gmode, errorcode;  /* detect graphics hardware available */   detectgraph(&gdriver, &gmode);   /* read result of detectgraph call */   errorcode = graphresult();   if (errorcode != grOk)  /* an error         occurred */   {      printf("Graphics error: %s\n", \      grapherrormsg(errorcode));      printf("Press any key to halt:");      getch();      exit(1); /* terminate with an error    code */   }   /* display the information detected */   clrscr();   printf("You have %s video display \   card.\n", dname[gdriver]);   printf("Press any key to halt:");   getch();   return 0;}函数名: difftime功  能: 计算两个时刻之间的时间差用  法: double difftime(time_t time2, time_t time1);程序例:#include <time.h>#include <stdio.h>#include <dos.h>#include <conio.h>int main(void){   time_t first, second;   clrscr();   first = time(NULL);  /* Gets system      time */   delay(2000);         /* Waits 2 secs */   second = time(NULL); /* Gets system time      again */   printf("The difference is: %f \   seconds\n",difftime(second,first));   getch();   return 0;}函数名: disable功  能: 屏蔽中断用  法: void disable(void);程序例:/***NOTE: This is an interrupt service routine. You cannot compile this program with Test Stack Overflow turned on and get an executable file that operates correctly. */#include <stdio.h>#include <dos.h>#include <conio.h>#define INTR 0X1C    /* The clock tick   interrupt */void interrupt ( *oldhandler)(void);int count=0;void interrupt handler(void){/* disable interrupts during the handling of   the interrupt */   disable();/* increase the global counter */   count++;/* reenable interrupts at the end of the   handler */   enable();/* call the old routine */   oldhandler();}int main(void){/* save the old interrupt vector */   oldhandler = getvect(INTR);/* install the new interrupt handler */   setvect(INTR, handler);/* loop until the counter exceeds 20 */   while (count < 20)      printf("count is %d\n",count);/* reset the old interrupt handler */   setvect(INTR, oldhandler);   return 0;}函数名: div功  能: 将两个整数相除, 返回商和余数用  法: div_t (int number, int denom);程序例:#include <stdlib.h>#include <stdio.h>div_t x;int main(void){   x = div(10,3);   printf("10 div 3 = %d remainder %d\n", x.quot, x.rem);   return 0;}函数名: dosexterr功  能: 获取扩展DOS错误信息用  法: int dosexterr(struct DOSERR *dblkp);程序例:#include <stdio.h>#include <dos.h>int main(void){   FILE *fp;   struct DOSERROR info;   fp = fopen("perror.dat","r");   if (!fp) perror("Unable to open file for     reading");   dosexterr(&info);   printf("Extended DOS error \   information:\n");   printf("   Extended error: \   %d\n",info.exterror);   printf("            Class: \   %x\n",info.class);   printf("           Action: \   %x\n",info.action);   printf("      Error Locus: \   %x\n",info.locus);   return 0;}函数名: dostounix功  能: 转换日期和时间为UNIX时间格式用  法: long dostounix(struct date *dateptr, struct time *timeptr);程序例: #include <time.h> #include <stddef.h> #include <dos.h> #include <stdio.h> int main(void) {    time_t t;    struct time d_time;    struct date d_date;    struct tm *local;    getdate(&d_date);    gettime(&d_time);    t = dostounix(&d_date, &d_time);    local = localtime(&t);    printf("Time and Date: %s\n", \    asctime(local));    return 0;}函数名: drawpoly功  能: 画多边形用  法: void far drawpoly(int numpoints, int far *polypoints);程序例:#include <graphics.h>#include <stdlib.h>#include <stdio.h>#include <conio.h>int main(void){   /* request auto detection */   int gdriver = DETECT, gmode, errorcode;   int maxx, maxy;   /* our polygon array */   int poly[10];   /* initialize graphics and local      variables */   initgraph(&gdriver, &gmode, "");   /* read result of initialization */   errorcode = graphresult();   if (errorcode != grOk)   /* an error occurred */   {      printf("Graphics error: %s\n", \      grapherrormsg(errorcode));      printf("Press any key to halt:");      getch();   /* terminate with an error code */      exit(1);   }   maxx = getmaxx();   maxy = getmaxy();   poly[0] = 20;        /* 1st vertext */   poly[1] = maxy / 2;   poly[2] = maxx - 20; /* 2nd */   poly[3] = 20;   poly[4] = maxx - 50; /* 3rd */   poly[5] = maxy - 20;   poly[6] = maxx / 2;  /* 4th */   poly[7] = maxy / 2;/*   drawpoly doesn't automatically close   the polygon, so we close it.*/   poly[8] = poly[0];   poly[9] = poly[1];   /* draw the polygon */   drawpoly(5, poly);   /* clean up */   getch();   closegraph();   return 0;}函数名: dup功  能: 复制一个文件句柄用  法: int dup(int handle);程序例:#include <string.h>#include <stdio.h>#include <conio.h>#include <io.h>void flush(FILE *stream);int main(void){   FILE *fp;   char msg[] = "This is a test";   /* create a file */   fp = fopen("DUMMY.FIL", "w");   /* write some data to the file */   fwrite(msg, strlen(msg), 1, fp);   clrscr();   printf("Press any key to flush \   DUMMY.FIL:");   getch();   /* flush the data to DUMMY.FIL without      closing it */   flush(fp);   printf("\nFile was flushed, Press any \   key to quit:");   getch();   return 0;}void flush(FILE *stream){   int duphandle;   /* flush TC's internal buffer */   fflush(stream);   /* make a duplicate file handle */   duphandle = dup(fileno(stream));   /* close the duplicate handle to flush the      DOS buffer */   close(duphandle);}函数名: dup2功  能: 复制文件句柄用  法: int dup2(int oldhandle, int newhandle);程序例:#include <sys\stat.h>#include <string.h>#include <fcntl.h>#include <io.h>int main(void){   #define STDOUT 1   int nul, oldstdout;   char msg[] = "This is a test";   /* create a file */   nul = open("DUMMY.FIL", O_CREAT | O_RDWR,      S_IREAD | S_IWRITE);   /* create a duplicate handle for standard      output */   oldstdout = dup(STDOUT);   /*      redirect standard output to DUMMY.FIL      by duplicating the file handle onto the      file handle for standard output.   */   dup2(nul, STDOUT);   /* close the handle for DUMMY.FIL */   close(nul);   /* will be redirected into DUMMY.FIL */   write(STDOUT, msg, strlen(msg));   /* restore original standard output      handle */   dup2(oldstdout, STDOUT);   /* close duplicate handle for STDOUT */   close(oldstdout);   return 0;}