孤狼工作室

GuLang Studio

C语言函数大全(1)

A:

函数名: abort
功  能: 异常终止一个进程
用  法: void abort(void);
程序例:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
  printf("Calling abort()/n");
  abort();
  return 0; /* This is never reached */
}
 
 

函数名: abs
功  能: 求整数的绝对值
用  法: int abs(int i);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
  int number = -1234;

  printf("number: %d  absolute value: %d/n", number, abs(number));
  return 0;
}
 
 

函数名: absread, abswirte
功  能: 绝对磁盘扇区读、写数据
用  法: int absread(int drive, int nsects, int sectno, void *buffer);
 int abswrite(int drive, int nsects, in tsectno, void *buffer);
程序例:
/* absread example */

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

int main(void)
{
  int i, strt, ch_out, sector;
  char buf[512];

  printf("Insert a diskette into drive A and press any key/n");
  getch();
  sector = 0;
  if (absread(0, 1, sector, &buf) != 0)
  {
     perror("Disk problem");
     exit(1);
  }
  printf("Read OK/n");
  strt = 3;
  for (i=0; i<80; i++)
  {
     ch_out = buf[strt+i];
     putchar(ch_out);
  }
  printf("/n");
  return(0);
}
 
 
 

函数名: access
功  能: 确定文件的访问权限
用  法: int access(const char *filename, int amode);
程序例:
#include <stdio.h>
#include <io.h>

int file_exists(char *filename);

int main(void)
{
  printf("Does NOTEXIST.FIL exist: %s/n",
  file_exists("NOTEXISTS.FIL") ? "YES" : "NO");
  return 0;
}

int file_exists(char *filename)
{
  return (access(filename, 0) == 0);
}
 

函数名: acos
功  能: 反余弦函数
用  法: double acos(double x);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
  double result;
  double x = 0.5;

  result = acos(x);
  printf("The arc cosine of %lf is %lf/n", x, result);
  return 0;
}
 
 

函数名: allocmem
功  能: 分配DOS存储段
用  法: int allocmem(unsigned size, unsigned *seg);
程序例:
#include <dos.h>
#include <alloc.h>
#include <stdio.h>

int main(void)
{
  unsigned int size, segp;
  int stat;

  size = 64; /* (64 x 16) = 1024 bytes */
  stat = allocmem(size, &segp);
  if (stat == -1)
     printf("Allocated memory at segment: %x/n", segp);
  else
     printf("Failed: maximum number of paragraphs available is %u/n",
            stat);

  return 0;
}
 
 

函数名: arc
功  能: 画一弧线
用  法: void far arc(int x, int y, int stangle, int endangle, int radius);
程序例:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

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

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

   /* read result of initialization */
   errorcode = graphresult();    /* an error occurred */
   if (errorcode != grOk)
   {
      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;
   setcolor(getmaxcolor());

   /* draw arc */
   arc(midx, midy, stangle, endangle, radius);

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

函数名: asctime
功  能: 转换日期和时间为ASCII码
用  法: char *asctime(const struct tm *tblock);
程序例:
#include <stdio.h>
#include <string.h>
#include <time.h>

int main(void)
{
   struct tm t;
   char str[80];

   /* sample loading of tm structure  */

   t.tm_sec    = 1;  /* Seconds */
   t.tm_min    = 30; /* Minutes */
   t.tm_hour   = 9;  /* Hour */
   t.tm_mday   = 22; /* Day of the Month  */
   t.tm_mon    = 11; /* Month */
   t.tm_year   = 56; /* Year - does not include century */
   t.tm_wday   = 4;  /* Day of the week  */
   t.tm_yday   = 0;  /* Does not show in asctime  */
   t.tm_isdst  = 0;  /* Is Daylight SavTime; does not show in asctime */

   /* converts structure to null terminated
   string */

   strcpy(str, asctime(&t));
   printf("%s/n", str);

   return 0;
}
 
 
 

函数名: asin
功  能: 反正弦函数
用  法: double asin(double x);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
   double result;
   double x = 0.5;

   result = asin(x);
   printf("The arc sin of %lf is %lf/n", x, result);
   return(0);
}
 
 
 

函数名: assert
功  能: 测试一个条件并可能使程序终止
用  法: void assert(int test);
程序例:
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

struct ITEM {
   int key;
   int value;
};

/* add item to list, make sure list is not null */
void additem(struct ITEM *itemptr) {
   assert(itemptr != NULL);
   /* add item to list */
}

int main(void)
{
   additem(NULL);
   return 0;
}
 
 
 

函数名: atan
功  能: 反正切函数
用  法: double atan(double x);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
   double result;
   double x = 0.5;

   result = atan(x);
   printf("The arc tangent of %lf is %lf/n", x, result);
   return(0);
}
 
 

函数名: atan2
功  能: 计算Y/X的反正切值
用  法: double atan2(double y, double x);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
   double result;
   double x = 90.0, y = 45.0;

   result = atan2(y, x);
   printf("The arc tangent ratio of %lf is %lf/n", (y / x), result);
   return 0;
}
 
 

函数名: atexit
功  能: 注册终止函数
用  法: int atexit(atexit_t func);
程序例:
#include <stdio.h>
#include <stdlib.h>

void exit_fn1(void)
{
   printf("Exit function #1 called/n");
}

void exit_fn2(void)
{
   printf("Exit function #2 called/n");
}

int main(void)
{
   /* post exit function #1 */
   atexit(exit_fn1);
   /* post exit function #2 */
   atexit(exit_fn2);
   return 0;
}
 
 
 

函数名: atof
功  能: 把字符串转换成浮点数
用  法: double atof(const char *nptr);
程序例:
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
   float f;
   char *str = "12345.67";

   f = atof(str);
   printf("string = %s float = %f/n", str, f);
   return 0;
}
 
 

函数名: atoi
功  能: 把字符串转换成长整型数
用  法: int atoi(const char *nptr);
程序例:
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
   int n;
   char *str = "12345.67";

   n = atoi(str);
   printf("string = %s integer = %d/n", str, n);
   return 0;
}
 
 

函数名: atol
功  能: 把字符串转换成长整型数
用  法: long atol(const char *nptr);
程序例:

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

int main(void)
{
   long l;
   char *str = "98765432";

   l = atol(lstr);
   printf("string = %s integer = %ld/n", str, l);
   return(0);
}

B:

函数名: bar
功  能: 画一个二维条形图
用  法: void far bar(int left, int top, int right, int bottom);
程序例:

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

int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   int midx, midy, i;

   /* 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;

   /* loop through the fill patterns */
   for (i=SOLID_FILL; i<USER_FILL; i++)
   {
      /* set the fill style */
      setfillstyle(i, getmaxcolor());

      /* draw the bar */
      bar(midx-50, midy-50, midx+50,
         midy+50);

      getch();
   }

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

函数名: bar3d
功  能: 画一个三维条形图
用  法: void far bar3d(int left, int top, int right, int bottom,
                       int depth, int topflag);
程序例:

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

int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   int midx, midy, i;

   /* initialize graphics, 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 error code */
   }

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

   /* loop through the fill patterns */
   for (i=EMPTY_FILL; i<USER_FILL; i++)
   {
      /* set the fill style */
      setfillstyle(i, getmaxcolor());

      /* draw the 3-d bar */
      bar3d(midx-50, midy-50, midx+50, midy+50, 10, 1);

      getch();
   }

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

函数名: bdos
功  能: DOS系统调用
用  法: int bdos(int dosfun, unsigned dosdx, unsigned dosal);
程序例:

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

/* Get current drive as 'A', 'B', ... */
char current_drive(void)
{
   char curdrive;

   /* Get current disk as 0, 1, ... */
   curdrive = bdos(0x19, 0, 0);
   return('A' + curdrive);
}

int main(void)
{
   printf("The current drive is %c:/n", current_drive());
   return 0;
}
 
 
 

函数名: bdosptr
功  能: DOS系统调用
用  法: int bdosptr(int dosfun, void *argument, unsigned dosal);
程序例:

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

#define  BUFLEN  80

int main(void)
{
   char  buffer[BUFLEN];
   int   test;

   printf("Enter full pathname of a directory/n");
   gets(buffer);

   test = bdosptr(0x3B,buffer,0);
      if(test)
      {
  printf("DOS error message: %d/n", errno);
  /* See errno.h for error listings */
  exit (1);
      }

   getcwd(buffer, BUFLEN);
   printf("The current directory is: %s/n", buffer);

   return 0;
}
 
 
 

函数名: bioscom
功  能: 串行I/O通信
用  法: int bioscom(int cmd, char abyte, int port);
程序例:

#include <bios.h>
#include <conio.h>

#define COM1       0
#define DATA_READY 0x100
#define TRUE       1
#define FALSE      0

#define SETTINGS ( 0x80 | 0x02 | 0x00 | 0x00)

int main(void)
{
   int in, out, status, DONE = FALSE;

   bioscom(0, SETTINGS, COM1);
   cprintf("... BIOSCOM [ESC] to exit .../n");
   while (!DONE)
   {
      status = bioscom(3, 0, COM1);
      if (status & DATA_READY)
  if ((out = bioscom(2, 0, COM1) & 0x7F) != 0)
     putch(out);
  if (kbhit())
  {
     if ((in = getch()) == '/x1B')
        DONE = TRUE;
     bioscom(1, in, COM1);
  }
   }
   return 0;
}
 
 
 

函数名: biosdisk
功  能: 软硬盘I/O
用  法: int biosdisk(int cmd, int drive, int head, int track, int sector
       int nsects, void *buffer);
程序例:

#include <bios.h>
#include <stdio.h>

int main(void)
{
   int result;
   char buffer[512];

   printf("Testing to see if drive a: is ready/n");
   result = biosdisk(4,0,0,0,0,1,buffer);
   result &= 0x02;
   (result) ? (printf("Drive A: Ready/n")) :
       (printf("Drive A: Not Ready/n"));

   return 0;
}
 
 
 

函数名: biosequip
功  能: 检查设备
用  法: int biosequip(void);
程序例:

#include <bios.h>
#include <stdio.h>

int main(void)
{
   int result;
   char buffer[512];

   printf("Testing to see if drive a: is ready/n");
   result = biosdisk(4,0,0,0,0,1,buffer);
   result &= 0x02;
   (result) ? (printf("Drive A: Ready/n")) :
       (printf("Drive A: Not Ready/n"));

   return 0;
}
 
 
 

函数名: bioskey
功  能: 直接使用BIOS服务的键盘接口
用  法: int bioskey(int cmd);
程序例:

#include <stdio.h>
#include <bios.h>
#include <ctype.h>

#define RIGHT  0x01
#define LEFT   0x02
#define CTRL   0x04
#define ALT    0x08

int main(void)
{
   int key, modifiers;

   /* function 1 returns 0 until a key is pressed */
   while (bioskey(1) == 0);

   /* function 0 returns the key that is waiting */
   key = bioskey(0);

   /* use function 2 to determine if shift keys were used */
   modifiers = bioskey(2);
   if (modifiers)
   {
      printf("[");
      if (modifiers & RIGHT) printf("RIGHT");
      if (modifiers & LEFT)  printf("LEFT");
      if (modifiers & CTRL)  printf("CTRL");
      if (modifiers & ALT)   printf("ALT");
      printf("]");
   }
   /* print out the character read */
   if (isalnum(key & 0xFF))
      printf("'%c'/n", key);
   else
      printf("%#02x/n", key);
   return 0;
}
 
 

函数名: biosmemory
功  能: 返回存储块大小
用  法:int biosmemory(void);
程序例:

#include <stdio.h>
#include <bios.h>

int main(void)
{
   int memory_size;

   memory_size = biosmemory();  /* returns value up to 640K */
   printf("RAM size = %dK/n",memory_size);
   return 0;
}
 
 
 

函数名: biosprint
功  能: 直接使用BIOS服务的打印机I/O
用  法: int biosprint(int cmd, int byte, int port);
程序例:

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

int main(void)
{
   #define STATUS  2    /* printer status command */
   #define PORTNUM 0    /* port number for LPT1 */

   int status, abyte=0;

   printf("Please turn off your printer.  Press any key to continue/n");
   getch();
   status = biosprint(STATUS, abyte, PORTNUM);
   if (status & 0x01)
      printf("Device time out./n");
   if (status & 0x08)
      printf("I/O error./n");

   if (status & 0x10)
      printf("Selected./n");
   if (status & 0x20)
      printf("Out of paper./n");

   if (status & 0x40)
      printf("Acknowledge./n");
   if (status & 0x80)
      printf("Not busy./n");

   return 0;
}
 
 
 

函数名: biostime
功  能: 读取或设置BIOS时间
用  法: long biostime(int cmd, long newtime);
程序例:

#include <stdio.h>
#include <bios.h>
#include <time.h>
#include <conio.h>

int main(void)
{
   long bios_time;

   clrscr();
   cprintf("The number of clock ticks since midnight is:/r/n");
   cprintf("The number of seconds since midnight is:/r/n");
   cprintf("The number of minutes since midnight is:/r/n");
   cprintf("The number of hours since midnight is:/r/n");
   cprintf("/r/nPress any key to quit:");
   while(!kbhit())
   {
      bios_time = biostime(0, 0L);

      gotoxy(50, 1);
      cprintf("%lu", bios_time);

      gotoxy(50, 2);
      cprintf("%.4f", bios_time / CLK_TCK);

      gotoxy(50, 3);
      cprintf("%.4f", bios_time / CLK_TCK / 60);

      gotoxy(50, 4);
      cprintf("%.4f", bios_time / CLK_TCK / 3600);
   }
   return 0;
}
 
 
 

函数名: brk
功  能: 改变数据段空间分配
用  法: int brk(void *endds);
程序例:

#include <stdio.h>
#include <alloc.h>

int main(void)
{
   char *ptr;

   printf("Changing allocation with brk()/n");
   ptr = malloc(1);
   printf("Before brk() call: %lu bytes free/n", coreleft());
   brk(ptr+1000);
   printf(" After brk() call: %lu bytes free/n", coreleft());
   return 0;
}
 
 
 

函数名: bsearch
功  能: 二分法搜索
用  法: void *bsearch(const void *key, const void *base, size_t *nelem,  size_t width, int(*fcmp)(const void *, const *));
程序例:

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

#define NELEMS(arr) (sizeof(arr) / sizeof(arr[0]))

int numarray[] = {123, 145, 512, 627, 800, 933};

int numeric (const int *p1, const int *p2)
{
   return(*p1 - *p2);
}

int lookup(int key)
{
   int *itemptr;

   /* The cast of (int(*)(const void *,const void*))
      is needed to avoid a type mismatch error at
      compile time */
   itemptr = bsearch (&key, numarray, NELEMS(numarray),
      sizeof(int), (int(*)(const void *,const void *))numeric);
   return (itemptr != NULL);
}

int main(void)
{
   if (lookup(512))
      printf("512 is in the table./n");
   else
      printf("512 isn't in the table./n");

   return 0;
}

C:

函数名: cabs
功  能: 计算复数的绝对值
用  法: double cabs(struct complex z);
程序例:

#include
#include

int main(void)
{
   struct complex z;
   double val;

   z.x = 2.0;
   z.y = 1.0;
   val = cabs(z);

   printf("The absolute value of %.2lfi %.2lfj is %.2lf", z.x, z.y, val);
   return 0;
}
 
 
 

函数名: calloc
功  能: 分配主存储器
用  法: void *calloc(size_t nelem, size_t elsize);
程序例:

#include
#include

int main(void)
{
   char *str = NULL;

   /* allocate memory for string */
   str = calloc(10, sizeof(char));

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

   /* display string */
   printf("String is %s/n", str);

   /* free memory */
   free(str);

   return 0;
}
 
 
 

函数名: ceil
功  能: 向上舍入
用  法: double ceil(double x);
程序例:

#include
#include

int main(void)
{
   double number = 123.54;
   double down, up;

   down = floor(number);
   up = ceil(number);

   printf("original number     %5.2lf/n", number);
   printf("number rounded down %5.2lf/n", down);
   printf("number rounded up   %5.2lf/n", up);

   return 0;
}
 
 
 

函数名: cgets
功  能: 从控制台读字符串
用  法: char *cgets(char *str);
程序例:

#include
#include

int main(void)
{
   char buffer[83];
   char *p;

   /* There's space for 80 characters plus the NULL terminator */
   buffer[0] = 81;

   printf("Input some chars:");
   p = cgets(buffer);
   printf("/ncgets read %d characters: /"%s/"/n", buffer[1], p);
   printf("The returned pointer is %p, buffer[0] is at %p/n", p, &buffer);

   /* Leave room for 5 characters plus the NULL terminator */
   buffer[0] = 6;

   printf("Input some chars:");
   p = cgets(buffer);
   printf("/ncgets read %d characters: /"%s/"/n", buffer[1], p);
   printf("The returned pointer is %p, buffer[0] is at %p/n", p, &buffer);
   return 0;
}
 
 
 

函数名: chdir
功  能: 改变工作目录
用  法: int chdir(const char *path);
程序例:

#include
#include
#include

char old_dir[MAXDIR];
char new_dir[MAXDIR];

int main(void)
{
   if (getcurdir(0, old_dir))
   {
      perror("getcurdir()");
      exit(1);
   }
   printf("Current directory is: //%s/n", old_dir);

   if (chdir("//"))
   {
      perror("chdir()");
      exit(1);
   }

   if (getcurdir(0, new_dir))
   {
      perror("getcurdir()");
      exit(1);
   }
   printf("Current directory is now: //%s/n", new_dir);

   printf("/nChanging back to orignal directory: //%s/n", old_dir);
   if (chdir(old_dir))
   {
      perror("chdir()");
      exit(1);
   }

   return 0;
}
 
 

函数名: _chmod, chmod
功  能: 改变文件的访问方式
用  法: int chmod(const char *filename, int permiss);
程序例:

#include <SYS/STAT.H>
#include
#include

void make_read_only(char *filename);

int main(void)
{
   make_read_only("NOTEXIST.FIL");
   make_read_only("MYFILE.FIL");
   return 0;
}

void make_read_only(char *filename)
{
   int stat;

   stat = chmod(filename, S_IREAD);
   if (stat)
      printf("Couldn't make %s read-only/n", filename);
   else
      printf("Made %s read-only/n", filename);
}
 
 
 

函数名: chsize
功  能: 改变文件大小
用  法: int chsize(int handle, long size);
程序例:

#include
#include
#include

int main(void)
{
   int handle;
   char buf[11] = "0123456789";

   /* create text file containing 10 bytes */
   handle = open("DUMMY.FIL", O_CREAT);
   write(handle, buf, strlen(buf));

   /* truncate the file to 5 bytes in size */
   chsize(handle, 5);

   /* close the file */
   close(handle);
   return 0;
}
 
 

函数名: circle
功  能: 在给定半径以(x, y)为圆心画圆
用  法: void far circle(int x, int y, int radius);
程序例:

#include
#include
#include
#include

int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   int midx, midy;
   int 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;
   setcolor(getmaxcolor());

   /* draw the circle */
   circle(midx, midy, radius);

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

函数名: cleardevice
功  能: 清除图形屏幕
用  法: void far cleardevice(void);
程序例:

#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;
   setcolor(getmaxcolor());

   /* for centering screen messages */
   settextjustify(CENTER_TEXT, CENTER_TEXT);

   /* output a message to the screen */
   outtextxy(midx, midy, "press any key to clear the screen:");

   /* wait for a key */
   getch();

   /* clear the screen */
   cleardevice();

   /* output another message */
   outtextxy(midx, midy, "press any key to quit:");

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

函数名: clearerr
功  能: 复位错误标志
用  法:void clearerr(FILE *stream);
程序例:

#include

int main(void)
{
   FILE *fp;
   char ch;

   /* open a file for writing */
   fp = fopen("DUMMY.FIL", "w");

   /* force an error condition by attempting to read */
   ch = fgetc(fp);
   printf("%c/n",ch);

   if (ferror(fp))
   {
      /* display an error message */
      printf("Error reading from DUMMY.FIL/n");

      /* reset the error and EOF indicators */
      clearerr(fp);
   }

   fclose(fp);
   return 0;
}
 
 
 

函数名: clearviewport
功  能: 清除图形视区
用  法: void far clearviewport(void);
程序例:

#include
#include
#include
#include

#define CLIP_ON 1   /* activates clipping in viewport */

int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   int ht;

   /* 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 */
   }

   setcolor(getmaxcolor());
   ht = textheight("W");

   /* message in default full-screen viewport */
   outtextxy(0, 0, "* <-- (0, 0) in default viewport");

   /* create a smaller viewport */
   setviewport(50, 50, getmaxx()-50, getmaxy()-50, CLIP_ON);

   /* display some messages */
   outtextxy(0, 0, "* <-- (0, 0) in smaller viewport");
   outtextxy(0, 2*ht, "Press any key to clear viewport:");

   /* wait for a key */
   getch();

   /* clear the viewport */
   clearviewport();

   /* output another message */
   outtextxy(0, 0, "Press any key to quit:");

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

函数名: _close, close
功  能: 关闭文件句柄
用  法: int close(int handle);
程序例:

#include
#include
#include
#include

main()
{
   int handle;
   char buf[11] = "0123456789";

   /* create a file containing 10 bytes */
   handle = open("NEW.FIL", O_CREAT);
   if (handle > -1)
   {
       write(handle, buf, strlen(buf));

       /* close the file */
       close(handle);
   }
   else
   {
       printf("Error opening file/n");
   }
   return 0;
}
 
 
 

函数名: clock
功  能: 确定处理器时间
用  法: clock_t clock(void);
程序例:

#include
#include
#include

int main(void)
{
   clock_t start, end;
   start = clock();

   delay(2000);

   end = clock();
   printf("The time was: %f/n", (end - start) / CLK_TCK);

   return 0;
}
 
 
 

函数名: closegraph
功  能: 关闭图形系统
用  法: void far closegraph(void);
程序例:

#include
#include
#include
#include

int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   int x, y;

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

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

   /* output a message */
   settextjustify(CENTER_TEXT, CENTER_TEXT);
   outtextxy(x, y, "Press a key to close the graphics system:");

   /* wait for a key */
   getch();

   /* closes down the graphics system */
   closegraph();

   printf("We're now back in text mode./n");
   printf("Press any key to halt:");
   getch();
   return 0;
}
 
 
 

函数名: clreol
功  能: 在文本窗口中清除字符到行末
用  法: void clreol(void);
程序例:

#include

int main(void)

{
   clrscr();
   cprintf("The function CLREOL clears all characters from the/r/n");
   cprintf("cursor position to the end of the line within the/r/n");
   cprintf("current text window, without moving the cursor./r/n");
   cprintf("Press any key to continue . . .");
   gotoxy(14, 4);
   getch();

   clreol();
   getch();

   return 0;
}
 
 
 

函数名: clrscr
功  能: 清除文本模式窗口
用  法: void clrscr(void);
程序例:

#include

int main(void)
{
   int i;

   clrscr();
   for (i = 0; i < 20; i++)
      cprintf("%d/r/n", i);
   cprintf("/r/nPress any key to clear screen");
   getch();

   clrscr();
   cprintf("The screen has been cleared!");
   getch();

   return 0;
}
 
 
 

函数名: coreleft
功  能: 返回未使用内存的大小
用  法: unsigned coreleft(void);
程序例:

#include
#include

int main(void)
{
   printf("The difference between the highest allocated block and/n");
   printf("the top of the heap is: %lu bytes/n", (unsigned long) coreleft());

   return 0;
}
 

函数名: cos
功  能: 余弦函数
用  法: double cos(double x);
程序例:

#include
#include

int main(void)
{
   double result;
   double x = 0.5;

   result = cos(x);
   printf("The cosine of %lf is %lf/n", x, result);
   return 0;
}
 
 
 

函数名: cosh
功  能: 双曲余弦函数
用  法: dluble cosh(double x);
程序例:

#include
#include

int main(void)
{
   double result;
   double x = 0.5;

   result = cosh(x);
   printf("The hyperboic cosine of %lf is %lf/n", x, result);
   return 0;
}
 
 
 

函数名: country
功  能: 返回与国家有关的信息
用  法: struct COUNTRY *country(int countrycode, struct country *country);
程序例:

#include
#include

#define USA 0

int main(void)
{
   struct COUNTRY country_info;

   country(USA, &country_info);
   printf("The currency symbol for the USA is: %s/n",
           country_info.co_curr);
   return 0;
}
 
 
 

函数名: cprintf
功  能: 送格式化输出至屏幕
用  法: int cprintf(const char *format[, argument, ...]);
程序例:

#include

int main(void)
{
   /* clear the screen */
   clrscr();

   /* create a text window */
   window(10, 10, 80, 25);

   /* output some text in the window */
   cprintf("Hello world/r/n");

   /* wait for a key */
   getch();
   return 0;
}
 
 
 

函数名: cputs
功  能: 写字符到屏幕
用  法: void cputs(const char *string);
程序例:

#include

int main(void)
{
   /* clear the screen */
   clrscr();

   /* create a text window */
   window(10, 10, 80, 25);

   /* output some text in the window */
   cputs("This is within the window/r/n");

   /* wait for a key */
   getch();
   return 0;
}
 
 
 

函数名: _creat  creat
功  能: 创建一个新文件或重写一个已存在的文件
用  法: int creat (const char *filename, int permiss);
程序例:

#include <SYS/STAT.H>
#include
#include
#include

int main(void)
{
   int handle;
   char buf[11] = "0123456789";

   /* change the default file mode from text to binary */
   _fmode = O_BINARY;

   /* create a binary file for reading and writing */
   handle = creat("DUMMY.FIL", S_IREAD | S_IWRITE);

   /* write 10 bytes to the file */
   write(handle, buf, strlen(buf));

   /* close the file */
   close(handle);
   return 0;
}
 

函数名: creatnew
功  能: 创建一个新文件
用  法: int creatnew(const char *filename, int attrib);
程序例:

#include
#include
#include
#include
#include

int main(void)
{
   int handle;
   char buf[11] = "0123456789";

   /* attempt to create a file that doesn't already exist */
   handle = creatnew("DUMMY.FIL", 0);

   if (handle == -1)
      printf("DUMMY.FIL already exists./n");
   else
   {
      printf("DUMMY.FIL successfully created./n");
      write(handle, buf, strlen(buf));
      close(handle);
   }
   return 0;
}
 
 
 

函数名: creattemp
功  能: 创建一个新文件或重写一个已存在的文件
用  法: int creattemp(const char *filename, int attrib);
程序例:

#include
#include
#include

int main(void)
{
   int handle;
   char pathname[128];

   strcpy(pathname, "//");

   /* create a unique file in the root directory */
   handle = creattemp(pathname, 0);

   printf("%s was the unique file created./n", pathname);
   close(handle);
   return 0;
}
 
 
 

函数名: cscanf
功  能: 从控制台执行格式化输入
用  法: int cscanf(char *format[,argument, ...]);
程序例:

#include

int main(void)
{
   char string[80];

   /* clear the screen */
   clrscr();

   /* Prompt the user for input */
   cprintf("Enter a string with no spaces:");

   /* read the input */
   cscanf("%s", string);

   /* display what was read */
   cprintf("/r/nThe string entered is: %s", string);
   return 0;
}
 
 
 

函数名: ctime
功  能: 把日期和时间转换为字符串
用  法: char *ctime(const time_t *time);
程序例:

#include
#include

int main(void)
{
   time_t t;

   time(&t);
   printf("Today's date and time: %s/n", ctime(&t));
   return 0;
}
 
 
 

函数名: ctrlbrk
功  能: 设置Ctrl-Break处理程序
用  法: void ctrlbrk(*fptr)(void);
程序例:

#include
#include

#define ABORT 0

int c_break(void)
{
   printf("Control-Break pressed.  Program aborting .../n");
   return (ABORT);
}

int main(void)
{
   ctrlbrk(c_break);
   for(;;)
   {
      printf("Looping... Press to quit:/n");
   }
   return 0;
}

D:

函数名: 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;
}

E:

函数名: ecvt
功  能: 把一个浮点数转换为字符串
用  法: char ecvt(double value, int ndigit, int *decpt, int *sign);
程序例:

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

int main(void)
{
   char *string;
   double value;
   int dec, sign;
   int ndig = 10;

   clrscr();
   value = 9.876;
   string = ecvt(value, ndig, &dec, &sign);
   printf("string = %s      dec = %d /
   sign = %d/n", string, dec, sign);

   value = -123.45;
   ndig= 15;
   string = ecvt(value,ndig,&dec,&sign);
   printf("string = %s dec = %d sign = %d/n",
   string, dec, sign);
 

   value = 0.6789e5; /* scientific
   notation */
   ndig = 5;
   string = ecvt(value,ndig,&dec,&sign);
   printf("string = %s           dec = %d/
   sign = %d/n", string, dec, sign);

   return 0;
}
 
 

函数名: ellipse
功  能: 画一椭圆
用  法: void far ellipse(int x, int y, int stangle, int endangle,
    int xradius, int yradius);
程序例:

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

int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   int midx, midy;
   int stangle = 0, endangle = 360;
   int xradius = 100, yradius = 50;

   /* initialize graphics, 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;
   setcolor(getmaxcolor());

   /* draw ellipse */
   ellipse(midx, midy, stangle, endangle,
    xradius, yradius);

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

函数名: enable
功  能: 开放硬件中断
用  法: void enable(void);
程序例:

/* ** NOTE:
This is an interrupt service routine. You can NOT compile this program
with Test Stack Overflow turned on and get an executable file which will
operate correctly.
*/

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

/* The clock tick interrupt */
#define INTR 0X1C

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++;
/*
   re enable 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;
}
 
 

函数名: eof
功  能: 检测文件结束
用  法: int eof(int *handle);
程序例:

#include <sys/stat.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>

int main(void)
{
   int handle;
   char msg[] = "This is a test";
   char ch;

   /* create a file */
   handle = open("DUMMY.FIL",
   O_CREAT | O_RDWR,
   S_IREAD | S_IWRITE);

   /* write some data to the file */
   write(handle, msg, strlen(msg));

   /* seek to the beginning of the file */
   lseek(handle, 0L, SEEK_SET);

   /*
      reads chars from the file until hit EOF
   */
   do
   {
      read(handle, &ch, 1);
      printf("%c", ch);
   } while (!eof(handle));

   close(handle);
   return 0;
}
 
 

函数名: exec...
功  能: 装入并运行其它程序的函数
用  法: int execl(char *pathname, char *arg0, arg1, ..., argn, NULL);
 int execle(char *pathname, char *arg0, arg1, ..., argn, NULL,
     char *envp[]);
 int execlp(char *pathname, char *arg0, arg1, .., NULL);
 int execple(char *pathname, char *arg0, arg1, ..., NULL,
      char *envp[]);
 int execv(char *pathname, char *argv[]);
 int execve(char *pathname, char *argv[], char *envp[]);
 int execvp(char *pathname, char *argv[]);
 int execvpe(char *pathname, char *argv[], char *envp[]);
程序例:

/* execv example */
#include <process.h>
#include <stdio.h>
#include <errno.h>

void main(int argc, char *argv[])
{
   int i;

   printf("Command line arguments:/n");
   for (i=0; i<argc; i++)
      printf("[%2d] : %s/n", i, argv[i]);

   printf("About to exec child with arg1 arg2 .../n");
   execv("CHILD.EXE", argv);

   perror("exec error");

   exit(1);
}
 
 

函数名: exit
功  能: 终止程序
用  法: void exit(int status);
程序例:

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

int main(void)
{
   int status;

   printf("Enter either 1 or 2/n");
   status = getch();
   /* Sets DOS errorlevel  */
   exit(status - '0');

/* Note: this line is never reached */
   return 0;
}
 
 

函数名: exp
功  能: 指数函数
用  法: double exp(double x);
程序例:

#include <stdio.h>
#include <math.h>

int main(void)
{
   double result;
   double x = 4.0;

   result = exp(x);
   printf("'e' raised to the power /
   of %lf (e ^ %lf) = %lf/n",
   x, x, result);

   return 0;
}

阅读更多
个人分类: C语言
想对作者说点什么? 我来说一句

C语言函数大全 C语言函数大全

2011年05月29日 171KB 下载

C语言函数大全 C语言函数大全

2010年04月15日 172KB 下载

C语言函数大全C语言函数大全

2008年11月26日 142KB 下载

C语言函数大全

2008年04月22日 610KB 下载

c语言函数大全 所有函数

2009年12月04日 784KB 下载

Linux C语言函数大全

2008年11月17日 448KB 下载

C语言的画图函数大全

2010年06月06日 470KB 下载

没有更多推荐了,返回首页

不良信息举报

C语言函数大全(1)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭