科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件C语言库函数(I类字母)

C语言库函数(I类字母)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

C语言库函数(I类字母).

来源:中国软件网 2008年3月31日

关键字: 字母 库函数 C++ C Linux

  • 评论
  • 分享微博
  • 分享邮件

函数名: imagesize 
功  能: 返回保存位图像所需的字节数 
用  法: unsigned far imagesize(int left, int top, int right, int bottom); 
程序例: 

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

#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); 

  
  
  

函数名: initgraph 
功  能: 初始化图形系统 
用  法: void far initgraph(int far *graphdriver, int far *graphmode, 
    char far *pathtodriver); 
程序例: 

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

int main(void) 

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

   /* initialize graphics mode */ 
   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);             /* return with error code */ 
   } 

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

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

  
  

函数名: inport 
功  能: 从硬件端口中输入 
用  法: int inp(int protid); 
程序例: 

#include <stdio.h> 
#include <dos.h> 

int main(void) 

   int result; 
   int port = 0;  /* serial port 0 */ 

   result = inport(port); 
   printf("Word read from port %d = 0x%X\n", port, result); 
   return 0; 

  
  

函数名: insline 
功  能: 在文本窗口中插入一个空行 
用  法: void insline(void); 
程序例: 

#include <conio.h> 

int main(void) 

   clrscr(); 
   cprintf("INSLINE inserts an empty line in the text window\r\n"); 
   cprintf("at the cursor position using the current text\r\n"); 
   cprintf("background color.  All lines below the empty one\r\n"); 
   cprintf("move down one line and the bottom line scrolls\r\n"); 
   cprintf("off the bottom of the window.\r\n"); 
   cprintf("\r\nPress any key to continue:"); 
   gotoxy(1, 3); 
   getch(); 
   insline(); 
   getch(); 
   return 0; 

  
  
  

函数名: installuserdriver 
功  能: 安装设备驱动程序到BGI设备驱动程序表中 
用  法: int far installuserdriver(char far *name, int (*detect)(void)); 
程序例: 

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

/* function prototypes */ 
int huge detectEGA(void); 
void checkerrors(void); 

int main(void) 

   int gdriver, gmode; 

   /* install a user written device driver */ 
   gdriver = installuserdriver("EGA", detectEGA); 

   /* must force use of detection routine */ 
   gdriver = DETECT; 

   /* check for any installation errors */ 
   checkerrors(); 

   /* initialize graphics and local variables */ 
   initgraph(&gdriver, &gmode, ""); 

   /* check for any initialization errors */ 
   checkerrors(); 

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

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

/* detects EGA or VGA cards */ 
int huge detectEGA(void) 

   int driver, mode, sugmode = 0; 

   detectgraph(&driver, &mode); 
   if ((driver == EGA)  (driver == VGA)) 
      /* return suggested video mode number */ 
      return sugmode; 
   else 
      /* return an error code */ 
      return grError; 

/* check for and report any graphics errors */ 
void checkerrors(void) 

   int errorcode; 

   /* read result of last graphics operation */ 
   errorcode = graphresult(); 
   if (errorcode != grOk) 
   { 
      printf("Graphics error: %s\n", grapherrormsg(errorcode)); 
      printf("Press any key to halt:"); 
      getch(); 
      exit(1); 
   } 

函数名: installuserfont 
功  能: 安装未嵌入BGI系统的字体文件(CHR) 
用  法: int far installuserfont(char far *name); 
程序例: 

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

/* function prototype */ 
void checkerrors(void); 

int main(void) 

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

   /* initialize graphics and local variables */ 
   initgraph(&gdriver, &gmode, ""); 

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

   /* check for any initialization errors */ 
   checkerrors(); 

   /* install a user defined font file */ 
   userfont = installuserfont("USER.CHR"); 

   /* check for any installation errors */ 
   checkerrors(); 

   /* select the user font */ 
   settextstyle(userfont, HORIZ_DIR, 4); 

   /* output some text */ 
   outtextxy(midx, midy, "Testing!"); 

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

/* check for and report any graphics errors */ 
void checkerrors(void) 

   int errorcode; 

   /* read result of last graphics operation */ 
   errorcode = graphresult(); 
   if (errorcode != grOk) 
   { 
      printf("Graphics error: %s\n", grapherrormsg(errorcode)); 
      printf("Press any key to halt:"); 
      getch(); 
      exit(1); 
   } 
 } 
  
  
  

函数名: int86 
功  能: 通用8086软中断接口 
用  法: int int86(int intr_num, union REGS *inregs, union REGS *outregs); 
程序例: 

#include <stdio.h> 
#include <conio.h> 
#include <dos.h> 

#define VIDEO 0x10 

void movetoxy(int x, int y) 

   union REGS regs; 

   regs.h.ah = 2;  /* set cursor postion */ 
   regs.h.dh = y; 
   regs.h.dl = x; 
   regs.h.bh = 0;  /* video page 0 */ 
   int86(VIDEO, ®s, ®s); 

int main(void) 

   clrscr(); 
   movetoxy(35, 10); 
   printf("Hello\n"); 
   return 0; 

  
  

函数名: int86x 
功  能: 通用8086软中断接口 
用  法: int int86x(int intr_num, union REGS *insegs, union REGS *outregs, 
     struct SREGS *segregs); 
程序例: 

#include <dos.h> 
#include <process.h> 
#include <stdio.h> 

int main(void) 

   char filename[80]; 
   union REGS inregs, outregs; 
   struct SREGS segregs; 

   printf("Enter filename: "); 
   gets(filename); 
   inregs.h.ah = 0x43; 
   inregs.h.al = 0x21; 
   inregs.x.dx = FP_OFF(filename); 
   segregs.ds = FP_SEG(filename); 
   int86x(0x21, &inregs, &outregs, &segregs); 
   printf("File attribute: %X\n", outregs.x.cx); 
   return 0; 

  
  
  

函数名: intdos 
功  能: 通用DOS接口 
用  法: int intdos(union REGS *inregs, union REGS *outregs); 
程序例: 

#include <stdio.h> 
#include <dos.h> 

/* deletes file name; returns 0 on success, nonzero on failure */ 
int delete_file(char near *filename) 

   union REGS regs; 
   int ret; 
   regs.h.ah = 0x41;                            /* delete file */ 
   regs.x.dx = (unsigned) filename; 
   ret = intdos(®s, ®s); 

   /* if carry flag is set, there was an error */ 
   return(regs.x.cflag ? ret : 0); 

int main(void) 

   int err; 
   err = delete_file("NOTEXIST.$$$"); 
   if (!err) 
      printf("Able to delete NOTEXIST.$$$\n"); 
   else 
      printf("Not Able to delete NOTEXIST.$$$\n"); 
   return 0; 

  
  
  

函数名: intdosx 
功  能: 通用DOS中断接口 
用  法: int intdosx(union REGS *inregs, union REGS *outregs, 
      struct SREGS *segregs); 
程序例: 

#include <stdio.h> 
#include <dos.h> 

/* deletes file name; returns 0 on success, nonzero on failure */ 
int delete_file(char far *filename) 

   union REGS regs; struct SREGS sregs; 
   int ret; 
   regs.h.ah = 0x41;                      /* delete file */ 
   regs.x.dx = FP_OFF(filename); 
   sregs.ds = FP_SEG(filename); 
   ret = intdosx(®s, ®s, &sregs); 

   /* if carry flag is set, there was an error */ 
   return(regs.x.cflag ? ret : 0); 

int main(void) 

   int err; 
   err = delete_file("NOTEXIST.$$$"); 
   if (!err) 
      printf("Able to delete NOTEXIST.$$$\n"); 
   else 
      printf("Not Able to delete NOTEXIST.$$$\n"); 
   return 0; 

  
  

函数名: intr 
功  能: 改变软中断接口 
用  法: void intr(int intr_num, struct REGPACK *preg); 
程序例: 

#include <stdio.h> 
#include <string.h> 
#include <dir.h> 
#include <dos.h> 

#define CF 1  /* Carry flag */ 

int main(void) 

   char directory[80]; 
   struct REGPACK reg; 

   printf("Enter directory to change to: "); 
   gets(directory); 
   reg.r_ax = 0x3B << 8;         /* shift 3Bh into  AH */ 
   reg.r_dx = FP_OFF(directory); 
   reg.r_ds = FP_SEG(directory); 
   intr(0x21, ®); 
   if (reg.r_flags & CF) 
      printf("Directory change failed\n"); 
   getcwd(directory, 80); 
   printf("The current directory is: %s\n", directory); 
   return 0; 

  
  

函数名: ioctl 
功  能: 控制I/O设备 
用  法: int ioctl(int handle, int cmd[,int *argdx, int argcx]); 
程序例: 

#include <stdio.h> 
#include <dir.h> 
#include <io.h> 

int main(void) 

   int stat; 

   /* use func 8 to determine if the default drive is removable */ 
   stat = ioctl(0, 8, 0, 0); 
   if (!stat) 
      printf("Drive %c is removable.\n", getdisk() + ''A''); 
   else 
      printf("Drive %c is not removable.\n", getdisk() + ''A''); 
   return 0; 

  
  
  

函数名: isatty 
功  能: 检查设备类型 
用  法: int isatty(int handle); 
程序例: 

#include <stdio.h> 
#include <io.h> 

int main(void) 

   int handle; 

   handle = fileno(stdprn); 
   if (isatty(handle)) 
      printf("Handle %d is a device type\n", handle); 
   else 
      printf("Handle %d isn''t a device type\n", handle); 
   return 0; 

  
  
  

函数名: itoa 
功  能: 把一整数转换为字符串 
用  法: char *itoa(int value, char *string, int radix); 
程序例: 

#include <stdlib.h> 
#include <stdio.h> 

int main(void) 

   int number = 12345; 
   char string[25]; 

   itoa(number, string, 10); 
   printf("integer = %d string = %s\n", number, string); 
   return 0; 

   
 
 
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章