正文

C语言库函数举例说明(一)2006-01-24 14:28:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/love0you0forever/9870.html

分享到:

O字母开头

函数名: open 
功  能: 打开一个文件用于读或写 
用  法: int open(char *pathname, int access[, int permiss]); 
程序例: 
#include  
#include  
#include  
#include  

int main(void) 

   int handle; 
   char msg[] = "Hello world"; 

   if ((handle = open("TEST.$$$", O_CREAT | O_TEXT)) == -1) 
   { 
      perror("Error:"); 
      return 1; 
   } 
   write(handle, msg, strlen(msg)); 
   close(handle); 
   return 0; 
}  
   
  

函数名: outport 
功  能: 输出整数到硬件端口中 
用  法: void outport(int port, int value); 
程序例: 

#include  
#include  

int main(void) 

   int value = 64; 
   int port = 0; 

   outportb(port, value); 
   printf("Value %d sent to port number %d\n", value, port); 
   return 0; 
}  
   
  

函数名: outportb 
功  能: 输出字节到硬件端口中 
用  法: void outportb(int port, char byte); 
程序例: 

#include  
#include  

int main(void) 

   int value = 64; 
   int port = 0; 

   outportb(port, value); 
   printf("Value %d sent to port number %d\n", value, port); 
   return 0; 
}  
   
  

函数名: outtext 
功  能: 在视区显示一个字符串 
用  法: void far outtext(char far *textstring); 
程序例: 

#include  
#include  
#include  
#include  

int main(void) 

   /* request auto detection */ 
   int gdriver = DETECT, gmode, errorcode; 
   int midx, midy; 

   /* 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(); 
      exit(1); /* terminate with an error code */ 
   } 

   midx = getmaxx() / 2; 
   midy = getmaxy() / 2; 

   /* move the C.P. to the center of the screen */ 
   moveto(midx, midy); 

   /* output text starting at the C.P. */ 
   outtext("This "); 
   outtext("is "); 
   outtext("a "); 
   outtext("test."); 

   /* clean up */ 
   getch(); 
   closegraph(); 
   return 0; 
}  
   
  

函数名: outtextxy 
功  能: 在指定位置显示一字符串 
用  法: void far outtextxy(int x, int y, char *textstring); 
程序例: 

#include  
#include  
#include  
#include  

int main(void) 

   /* request auto detection */ 
   int gdriver = DETECT, gmode, errorcode; 
   int midx, midy; 

   /* 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(); 
      exit(1); /* terminate with an error code */ 
   } 

   midx = getmaxx() / 2; 
   midy = getmaxy() / 2; 

   /* output text at the center of the screen*/ 
   /* Note: the C.P. doesn't get changed.*/ 
   outtextxy(midx, midy, "This is a test."); 

   /* clean up */ 
   getch(); 
   closegraph(); 
   return 0; 
}

P字母开头

函数名: parsfnm 
功  能: 分析文件名 
用  法: char *parsfnm (char *cmdline, struct fcb *fcbptr, int option); 
程序例: 

#include  
#include  
#include  
#include  

int main(void) 

   char line[80]; 
   struct fcb blk; 

   /* get file name */ 
   printf("Enter drive and file name (no path - ie. a:file.dat)\n"); 
   gets(line); 

   /* put file name in fcb */ 
   if (parsfnm(line, &blk, 1) == NULL) 
      printf("Error in parsfm call\n"); 
   else 
      printf("Drive #%d  Name: %11s\n", blk.fcb_drive, blk.fcb_name); 

   return 0; 

  
  

函数名: peek 
功  能: 检查存储单元 
用  法: int peek(int segment, unsigned offset); 
程序例: 

#include  
#include  
#include  

int main(void) 

   int value = 0; 

   printf("The current status of your keyboard is:\n"); 
   value = peek(0x0040, 0x0017); 
   if (value & 1) 
      printf("Right shift on\n"); 
   else 
      printf("Right shift off\n"); 

   if (value & 2) 
      printf("Left shift on\n"); 
   else 
      printf("Left shift off\n"); 

   if (value & 4) 
      printf("Control key on\n"); 
   else 
      printf("Control key off\n"); 

   if (value & 8) 
      printf("Alt key on\n"); 
   else 
      printf("Alt key off\n"); 

   if (value & 16) 
      printf("Scroll lock on\n"); 
   else 
      printf("Scroll lock off\n"); 

   if (value & 32) 
      printf("Num lock on\n"); 
   else 
      printf("Num lock off\n"); 

   if (value & 64) 
      printf("Caps lock on\n"); 
   else 
      printf("Caps lock off\n"); 

   return 0; 

  
  

函数名: peekb 
功  能: 检查存储单元 
用  法: char peekb (int segment, unsigned offset); 
程序例: 

#include  
#include  
#include  

int main(void) 

   int value = 0; 

   printf("The current status of your keyboard is:\n"); 
   value = peekb(0x0040, 0x0017); 
   if (value & 1) 
      printf("Right shift on\n"); 
   else 
      printf("Right shift off\n"); 

   if (value & 2) 
      printf("Left shift on\n"); 
   else 
      printf("Left shift off\n"); 

   if (value & 4) 
      printf("Control key on\n"); 
   else 
      printf("Control key off\n"); 

   if (value & 8) 
      printf("Alt key on\n"); 
   else 
      printf("Alt key off\n"); 

   if (value & 16) 
      printf("Scroll lock on\n"); 
   else 
      printf("Scroll lock off\n"); 

   if (value & 32) 
      printf("Num lock on\n"); 
   else 
      printf("Num lock off\n"); 

   if (value & 64) 
      printf("Caps lock on\n"); 
   else 
      printf("Caps lock off\n"); 

   return 0; 

  
  

函数名: perror 
功  能: 系统错误信息 
用  法: void perror(char *string); 
程序例: 

#include  

int main(void) 

   FILE *fp; 

   fp = fopen("perror.dat", "r"); 
   if (!fp) 
      perror("Unable to open file for reading"); 
   return 0; 

  
  

函数名: pieslice 
功  能: 绘制并填充一个扇形 
用  法: void far pieslice(int x, int stanle, int endangle, int radius); 
程序例: 

#include  
#include  
#include  
#include  

int main(void) 

   /* request auto detection */ 
   int gdriver = DETECT, gmode, errorcode; 
   int midx, midy; 
   int stangle = 45, endangle = 135, radius = 100; 

   /* 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(); 
      exit(1); /* terminate with an error code */ 
   } 

   midx = getmaxx() / 2; 
   midy = getmaxy() / 2; 

   /* set fill style and draw a pie slice */ 
   setfillstyle(EMPTY_FILL, getmaxcolor()); 
   pieslice(midx, midy, stangle, endangle, radius); 

   /* clean up */ 
   getch(); 
   closegraph(); 
   return 0; 

  
  

函数名: poke 
功  能: 存值到一个给定存储单元 
用  法: void poke(int segment, int offset, int value); 
程序例: 

#include  
#include  

int main(void) 

   clrscr(); 
   cprintf("Make sure the scroll lock key is off and press any key\r\n"); 
   getch(); 
   poke(0x0000,0x0417,16); 
   cprintf("The scroll lock is now on\r\n"); 
   return 0; 

  
  

函数名: pokeb 
功  能: 存值到一个给定存储单元 
用  法: void pokeb(int segment, int offset, char value); 
程序例: 

#include  
#include  

int main(void) 

   clrscr(); 
   cprintf("Make sure the scroll lock key is off and press any key\r\n"); 
   getch(); 
   pokeb(0x0000,0x0417,16); 
   cprintf("The scroll lock is now on\r\n"); 
   return 0; 

  
  

函数名: poly 
功  能: 根据参数产生一个多项式 
用  法: double poly(double x, int n, double c[]); 
程序例: 

#include  
#include  

/* polynomial:  x**3 - 2x**2 + 5x - 1 */ 

int main(void) 

   double array[] = { -1.0, 5.0, -2.0, 1.0 }; 
   double result; 

   result = poly(2.0, 3, array); 
   printf("The polynomial: x**3 - 2.0x**2 + 5x - 1 at 2.0 is %lf\n", 
           result); 
   return 0; 

  
  

函数名: pow 
功  能: 指数函数(x的y次方) 
用  法: double pow(double x, double y); 
程序例: 

#include  
#include  

int main(void) 

   double x = 2.0, y = 3.0; 

   printf("%lf raised to %lf is %lf\n", x, y, pow(x, y)); 
   return 0; 

  

函数名: pow10 
功  能: 指数函数(10的p次方) 
用  法: double pow10(int p); 
程序例: 

#include  
#include  

int main(void) 

   double p = 3.0; 

   printf("Ten raised to %lf is %lf\n", p, pow10(p)); 
   return 0; 

  
  

函数名: printf 
功  能: 产生格式化输出的函数 
用  法: int printf(char *format...); 
程序例: 

#include  
#include  

#define I 555 
#define R 5.5 

int main(void) 

   int i,j,k,l; 
   char buf[7]; 
   char *prefix = buf; 
   char tp[20]; 
   printf("prefix  6d      6o      8x        10.2e        " 
          "10.2f\n"); 
   strcpy(prefix,"%"); 
   for (i = 0; i < 2; i++) 
   { 
      for (j = 0; j < 2; j++) 
         for (k = 0; k < 2; k++) 
     for (l = 0; l < 2; l++) 
            { 
               if (i==0)  strcat(prefix,"-"); 
               if (j==0)  strcat(prefix,"+"); 
               if (k==0)  strcat(prefix,"#"); 
               if (l==0)  strcat(prefix,"0"); 
               printf("%5s |",prefix); 
               strcpy(tp,prefix); 
               strcat(tp,"6d |"); 
               printf(tp,I); 
               strcpy(tp,""); 
               strcpy(tp,prefix); 
               strcat(tp,"6o |"); 
               printf(tp,I); 
               strcpy(tp,""); 
               strcpy(tp,prefix); 
               strcat(tp,"8x |"); 
               printf(tp,I); 
               strcpy(tp,""); 
               strcpy(tp,prefix); 
        strcat(tp,"10.2e |"); 
        printf(tp,R); 
        strcpy(tp,prefix); 
        strcat(tp,"10.2f |"); 
        printf(tp,R); 
        printf("  \n"); 
        strcpy(prefix,"%"); 
     } 
       } 
   return 0; 

  
  

函数名: putc 
功  能: 输出一字符到指定流中 
用  法: int putc(int ch, FILE *stream); 
程序例: 

#include  

int main(void) 

   char msg[] = "Hello world\n"; 
   int i = 0; 

   while (msg[i]) 
      putc(msg[i++], stdout); 
   return 0; 

  
  

函数名: putch 
功  能: 输出字符到控制台 
用  法: int putch(int ch); 
程序例: 

#include  
#include  

int main(void) 

   char ch = 0; 

   printf("Input a string:"); 
   while ((ch != '\r')) 
   { 
      ch = getch(); 
      putch(ch); 
   } 
   return 0; 

  
  

函数名: putchar 
功  能: 在stdout上输出字符 
用  法: int putchar(int ch); 
程序例: 

#include  

/* define some box-drawing characters */ 
#define LEFT_TOP  0xDA 
#define RIGHT_TOP 0xBF 
#define HORIZ     0xC4 
#define VERT      0xB3 
#define LEFT_BOT  0xC0 
#define RIGHT_BOT 0xD9 

int main(void) 

   char i, j; 

   /* draw the top of the box */ 
   putchar(LEFT_TOP); 
   for (i=0; i<10; i++) 
      putchar(HORIZ); 
   putchar(RIGHT_TOP); 
   putchar('\n'); 

   /* draw the middle */ 
   for (i=0; i<4; i++) 
   { 
      putchar(VERT); 
      for (j=0; j<10; j++) 
         putchar(' '); 
      putchar(VERT); 
      putchar('\n'); 
   } 

   /* draw the bottom */ 
   putchar(LEFT_BOT); 
   for (i=0; i<10; i++) 
      putchar(HORIZ); 
   putchar(RIGHT_BOT); 
   putchar('\n'); 

   return 0; 

  
  

函数名: putenv 
功  能: 把字符串加到当前环境中 
用  法: int putenv(char *envvar); 
程序例: 

#include  
#include  
#include  
#include  
#include  

int main(void) 

   char *path, *ptr; 
   int i = 0; 

   /* get the current path environment */ 
   ptr = getenv("PATH"); 

   /* set up new path */ 
   path = malloc(strlen(ptr)+15); 
   strcpy(path,"PATH="); 
   strcat(path,ptr); 
   strcat(path,";c:\\temp"); 

   /* replace the current path and display current environment */ 
   putenv(path); 
   while (environ[i]) 
       printf("%s\n",environ[i++]); 

   return 0; 

  
  

函数名: putimage 
功  能: 在屏幕上输出一个位图 
用  法: void far putimage(int x, int y, void far *bitmap, int op); 
程序例: 

#include  
#include  
#include  
#include  

#define ARROW_SIZE 10 

void draw_arrow(int x, int y); 

int main(void) 

   /* request autodetection */ 
   int gdriver = DETECT, gmode, errorcode; 
   void *arrow; 
   int x, y, maxx; 
   unsigned int size; 

   /* 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(); 
      exit(1); /* terminate with an error code */ 
   } 

   maxx = getmaxx(); 
   x = 0; 
   y = getmaxy() / 2; 

   /* draw the image to be grabbed */ 
   draw_arrow(x, y); 

   /* calculate the size of the image */ 
   size = imagesize(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE); 

   /* allocate memory to hold the image */ 
   arrow = malloc(size); 

   /* grab the image */ 
   getimage(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE, arrow); 

   /* repeat until a key is pressed */ 
   while (!kbhit()) 
   { 
      /* erase old image */ 
      putimage(x, y-ARROW_SIZE, arrow, XOR_PUT); 

      x += ARROW_SIZE; 
      if (x >= maxx) 
          x = 0; 

      /* plot new image */ 
      putimage(x, y-ARROW_SIZE, arrow, XOR_PUT); 
   } 

   /* clean up */ 
   free(arrow); 
   closegraph(); 
   return 0; 

void draw_arrow(int x, int y) 

   /* draw an arrow on the screen */ 
   moveto(x, y); 
   linerel(4*ARROW_SIZE, 0); 
   linerel(-2*ARROW_SIZE, -1*ARROW_SIZE); 
   linerel(0, 2*ARROW_SIZE); 
   linerel(2*ARROW_SIZE, -1*ARROW_SIZE); 

  
  

函数名: putpixel 
功  能: 在指定位置画一像素 
用  法: void far putpixel (int x, int y, int pixelcolor); 
程序例: 

#include  
#include  
#include  
#include  
#include  

#define PIXEL_COUNT 1000 
#define DELAY_TIME  100  /* in milliseconds */ 

int main(void) 

   /* request autodetection */ 
   int gdriver = DETECT, gmode, errorcode; 
   int i, x, y, color, maxx, maxy, maxcolor, seed; 

   /* 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(); 
      exit(1); /* terminate with an error code */ 
   } 

   maxx = getmaxx() + 1; 
   maxy = getmaxy() + 1; 
   maxcolor = getmaxcolor() + 1; 

   while (!kbhit()) 
   { 
      /* seed the random number generator */ 
      seed = random(32767); 
      srand(seed); 
      for (i=0; i      { 
  x = random(maxx); 
         y = random(maxy); 
         color = random(maxcolor); 
         putpixel(x, y, color); 
      } 

      delay(DELAY_TIME); 
      srand(seed); 
      for (i=0; i      { 
  x = random(maxx); 
  y = random(maxy); 
  color = random(maxcolor); 
  if (color == getpixel(x, y)) 
     putpixel(x, y, 0); 
      } 
   } 

   /* clean up */ 
   getch(); 
   closegraph(); 
   return 0; 

  
  

函数名: puts 
功  能: 送一字符串到流中 
用  法: int puts(char *string); 
程序例: 

#include  
int main(void) 

   char string[] = "This is an example output string\n"; 

   puts(string); 
   return 0; 

  
  

函数名: puttext 
功  能: 将文本从存储区拷贝到屏幕 
用  法: int puttext(int left, int top, int right, int bottom, void *source); 
程序例: 

#include  
int main(void) 

   char buffer[512]; 

   /* put some text to the console */ 
   clrscr(); 
   gotoxy(20, 12); 
   cprintf("This is a test.  Press any key to continue ..."); 
   getch(); 

   /* grab screen contents */ 
   gettext(20, 12, 36, 21,buffer); 
   clrscr(); 

   /* put selected characters back to the screen */ 
   gotoxy(20, 12); 
   puttext(20, 12, 36, 21, buffer); 
   getch(); 

   return 0; 

  
  

函数名: putw 
功  能: 把一字符或字送到流中 
用  法: int putw(int w, FILE *stream); 
程序例: 

#include  
#include  

#define FNAME "test.$$$" 

int main(void) 

   FILE *fp; 
   int word; 

   /* place the word in a file */ 
   fp = fopen(FNAME, "wb"); 
   if (fp == NULL) 
   { 
      printf("Error opening file %s\n", FNAME); 
      exit(1); 
   } 

   word = 94; 
   putw(word,fp); 
   if (ferror(fp)) 
       printf("Error writing to file\n"); 
   else 
       printf("Successful write\n"); 
   fclose(fp); 

   /* reopen the file */ 
   fp = fopen(FNAME, "rb"); 
   if (fp == NULL) 
   { 
      printf("Error opening file %s\n", FNAME); 
      exit(1); 
   } 

   /* extract the word */ 
   word = getw(fp); 
   if (ferror(fp)) 
       printf("Error reading file\n"); 
   else 
       printf("Successful read: word = %d\n", word); 

   /* clean up */ 
   fclose(fp); 
   unlink(FNAME); 

   return 0; 
}

Q字母开头

函数名: qsort
功  能: 使用快速排序例程进行排序
用  法: void qsort(void *base, int nelem, int width, int (*fcmp)());
程序例: 
#include <stdio.h>
#include <stdlib.h>
#include <string.h> 

int sort_function( const void *a, const void *b); 

char list[5][4] = { "cat", "car", "cab", "cap", "can" };
  

int main(void)
{
   int  x; 

   qsort((void *)list, 5, sizeof(list[0]), sort_function);
   for (x = 0; x < 5; x++)
      printf("%s\n", list[x]);
   return 0;

int sort_function( const void *a, const void *b)
{
   return( strcmp(a,b) );
}

 R字母开头

函数名: raise 
功  能: 向正在执行的程序发送一个信号 
用  法: int raise(int sig); 
程序例: 

#include  

int main(void) 

   int a, b; 

   a = 10; 
   b = 0; 
   if (b == 0) 
   /* preempt divide by zero error */ 
      raise(SIGFPE); 
   a = a / b; 
   return 0; 

  
  

函数名: rand 
功  能: 随机数发生器 
用  法: void rand(void); 
程序例: 

#include  
#include  

int main(void) 

   int i; 

   printf("Ten random numbers from 0 to 99\n\n"); 
   for(i=0; i<10; i++) 
      printf("%d\n", rand() % 100); 
   return 0; 

  
  

函数名: randbrd 
功  能: 随机块读 
用  法: int randbrd(struct fcb *fcbptr, int reccnt); 
程序例: 

#include  
#include  
#include  
#include  

int main(void) 

   char far *save_dta; 
   char line[80], buffer[256]; 
   struct fcb blk; 
   int i, result; 

   /* get user input file name for dta */ 
   printf("Enter drive and file name (no path - i.e. a:file.dat)\n"); 
   gets(line); 

   /* put file name in fcb */ 
   if (!parsfnm(line, &blk, 1)) 
   { 
      printf("Error in call to parsfnm\n"); 
      exit(1); 
   } 
   printf("Drive #%d  File: %s\n\n", blk.fcb_drive, blk.fcb_name); 

   /* open file with DOS FCB open file */ 
   bdosptr(0x0F, &blk, 0); 

   /* save old dta, and set new one */ 
   save_dta = getdta(); 
   setdta(buffer); 

   /* set up info for the new dta */ 
   blk.fcb_recsize = 128; 
   blk.fcb_random = 0L; 
   result = randbrd(&blk, 1); 

   /* check results from randbrd */ 
   if (!result) 
      printf("Read OK\n\n"); 
   else 
   { 
      perror("Error during read"); 
      exit(1); 
   } 

   /* read in data from the new dta */ 
   printf("The first 128 characters are:\n"); 
   for (i=0; i<128; i++) 
      putchar(buffer[i]); 

   /* restore previous dta */ 
   setdta(save_dta); 

   return 0; 

  

函数名: randbwr 
功  能: 随机块写 
用  法: int randbwr(struct fcp *fcbptr, int reccnt); 
程序例: 

#include  
#include  
#include  
#include  

int main(void) 

   char far *save_dta; 
   char line[80]; 
   char buffer[256] = "RANDBWR test!"; 
   struct fcb blk; 
   int result; 

   /* get new file name from user */ 
   printf("Enter a file name to create (no path - ie. a:file.dat\n"); 
   gets(line); 

   /* parse the new file name to the dta */ 
   parsfnm(line,&blk,1); 
   printf("Drive #%d  File: %s\n", blk.fcb_drive, blk.fcb_name); 

   /* request DOS services to create file */ 
   if (bdosptr(0x16, &blk, 0) == -1) 
   { 
      perror("Error creating file"); 
      exit(1); 
   } 

   /* save old dta and set new dta */ 
   save_dta = getdta(); 
   setdta(buffer); 

   /* write new records */ 
   blk.fcb_recsize = 256; 
   blk.fcb_random = 0L; 
   result = randbwr(&blk, 1); 

   if (!result) 
      printf("Write OK\n"); 
   else 
   { 
      perror("Disk error"); 
      exit(1); 
   } 

   /* request DOS services to close the file */ 
   if (bdosptr(0x10, &blk, 0) == -1) 
   { 
      perror("Error closing file"); 
      exit(1); 
   } 

   /* reset the old dta */ 
   setdta(save_dta); 

   return 0; 

  
  

函数名: random 
功  能: 随机数发生器 
用  法: int random(int num); 
程序例: 

#include  
#include  
#include  

/* prints a random number in the range 0 to 99 */ 
int main(void) 

   randomize(); 
   printf("Random number in the 0-99 range: %d\n", random (100)); 
   return 0; 

  
  

函数名: randomize 
功  能: 初始化随机数发生器 
用  法: void randomize(void); 
程序例: 

#include  
#include  
#include  

int main(void) 

   int i; 

   randomize(); 
   printf("Ten random numbers from 0 to 99\n\n"); 
   for(i=0; i<10; i++) 
       printf("%d\n", rand() % 100); 
   return 0; 

  
  

函数名: read 
功  能: 从文件中读 
用  法: int read(int handle, void *buf, int nbyte); 
程序例: 

#include  
#include  
#include  
#include  
#include  
#include  

int main(void) 

   void *buf; 
   int handle, bytes; 

   buf = malloc(10); 

/* 
   Looks for a file in the current directory named TEST.$$$ and attempts 
   to read 10 bytes from it.  To use this example you should create the 
   file TEST.$$$ 
*/ 
   if ((handle = 
      open("TEST.$$$", O_RDONLY | O_BINARY, S_IWRITE | S_IREAD)) == -1) 
   { 
      printf("Error Opening File\n"); 
      exit(1); 
   } 

   if ((bytes = read(handle, buf, 10)) == -1) { 
      printf("Read Failed.\n"); 
      exit(1); 
   } 
   else { 
      printf("Read: %d bytes read.\n", bytes); 
   } 
   return 0; 

  
  

函数名: realloc 
功  能: 重新分配主存 
用  法: void *realloc(void *ptr, unsigned newsize); 
程序例: 

#include  
#include  
#include  

int main(void) 

   char *str; 

   /* allocate memory for string */ 
   str = malloc(10); 

   /* copy "Hello" into string */ 
   strcpy(str, "Hello"); 

   printf("String is %s\n  Address is %p\n", str, str); 
   str = realloc(str, 20); 
   printf("String is %s\n  New address is %p\n", str, str); 

   /* free memory */ 
   free(str); 

   return 0; 

  
  

函数名: rectangle 
功  能: 画一个矩形 
用  法: void far rectangle(int left, int top, int right, int bottom); 
程序例: 

#include  
#include  
#include  
#include  

int main(void) 

   /* request auto detection */ 
   int gdriver = DETECT, gmode, errorcode; 
   int left, top, right, bottom; 

   /* 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(); 
      exit(1); /* terminate with an error code */ 
   } 

   left = getmaxx() / 2 - 50; 
   top = getmaxy() / 2 - 50; 
   right = getmaxx() / 2 + 50; 
   bottom = getmaxy() / 2 + 50; 

   /* draw a rectangle */ 
   rectangle(left,top,right,bottom); 

   /* clean up */ 
   getch(); 
   closegraph(); 
   return 0; 

  
  

函数名: registerbgidriver 
功  能: 登录已连接进来的图形驱动程序代码 
用  法: int registerbgidriver(void(*driver)(void)); 
程序例: 

#include  
#include  
#include  
#include  

int main(void) 

   /* request auto detection */ 
   int gdriver = DETECT, gmode, errorcode; 

   /* register a driver that was added into graphics.lib */ 
   errorcode = registerbgidriver(EGAVGA_driver); 

   /* report any registration errors */ 
   if (errorcode < 0) 
   { 
      printf("Graphics error: %s\n", grapherrormsg(errorcode)); 
      printf("Press any key to halt:"); 
      getch(); 
      exit(1); /* terminate with an error code */ 
   } 

   /* 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(); 
      exit(1); /* terminate with an error code */ 
   } 

   /* draw a line */ 
   line(0, 0, getmaxx(), getmaxy()); 

   /* clean up */ 
   getch(); 
   closegraph(); 
   return 0; 

  
  

函数名: remove 
功  能: 删除一个文件 
用  法: int remove(char *filename); 
程序例: 

#include  

int main(void) 

   char file[80]; 

   /* prompt for file name to delete */ 
   printf("File to delete: "); 
   gets(file); 

   /* delete the file */ 
   if (remove(file) == 0) 
      printf("Removed %s.\n",file); 
   else 
      perror("remove"); 

   return 0; 

  
  

函数名: rename 
功  能: 重命名文件 
用  法: int rename(char *oldname, char *newname); 
程序例: 

#include  

int main(void) 

   char oldname[80], newname[80]; 

   /* prompt for file to rename and new name */ 
   printf("File to rename: "); 
   gets(oldname); 
   printf("New name: "); 
   gets(newname); 

   /* Rename the file */ 
   if (rename(oldname, newname) == 0) 
      printf("Renamed %s to %s.\n", oldname, newname); 
   else 
      perror("rename"); 

   return 0; 

  
  

函数名: restorecrtmode 
功  能: 将屏幕模式恢复为先前的imitgraph设置 
用  法: void far restorecrtmode(void); 
程序例: 

#include  
#include  
#include  
#include  

int main(void) 

   /* request auto detection */ 
   int gdriver = DETECT, gmode, errorcode; 
   int x, y; 

   /* 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(); 
      exit(1); /* terminate with an error code */ 
   } 

   x = getmaxx() / 2; 
   y = getmaxy() / 2; 

   /* output a message */ 
   settextjustify(CENTER_TEXT, CENTER_TEXT); 
   outtextxy(x, y, "Press any key to exit graphics:"); 
   getch(); 

   /* restore system to text mode */ 
   restorecrtmode(); 
   printf("We're now in text mode.\n"); 
   printf("Press any key to return to graphics mode:"); 
   getch(); 

   /* return to graphics mode */ 
   setgraphmode(getgraphmode()); 

   /* output a message */ 
   settextjustify(CENTER_TEXT, CENTER_TEXT); 
   outtextxy(x, y, "We're back in graphics mode."); 
   outtextxy(x, y+textheight("W"), "Press any key to halt:"); 

   /* clean up */ 
   getch(); 
   closegraph(); 
   return 0; 

  
  

函数名: rewind 
功  能: 将文件指针重新指向一个流的开头 
用  法: int rewind(FILE *stream); 
程序例: 

#include  
#include  

 int main(void) 
 { 
    FILE *fp; 
    char *fname = "TXXXXXX", *newname, first; 

    newname = mktemp(fname); 
    fp = fopen(newname,"w+"); 
    fprintf(fp,"abcdefghijklmnopqrstuvwxyz"); 
    rewind(fp); 
    fscanf(fp,"%c",&first); 
    printf("The first character is: %c\n",first); 
    fclose(fp); 
    remove(newname); 

    return 0; 

  
  

函数名: rmdir 
功  能: 删除DOS文件目录 
用  法: int rmdir(char *stream); 
程序例: 

#include  
#include  
#include  
#include  

#define DIRNAME "testdir.$$$" 

int main(void) 

   int stat; 

   stat = mkdir(DIRNAME); 
   if (!stat) 
          printf("Directory created\n"); 
   else 
   { 
      printf("Unable to create directory\n"); 
      exit(1); 
   } 

   getch(); 
   system("dir/p"); 
   getch(); 

   stat = rmdir(DIRNAME); 
   if (!stat) 
          printf("\nDirectory deleted\n"); 
   else 
   { 
   perror("\nUnable to delete directory\n"); 
      exit(1); 
   } 

   return 0; 

阅读(4579) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册