刘华世的官方博客

C语言 常用函数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 
 The ERROR:
 'absread' : undeclared identifier
 请用 到纯 MS-dos 下用 Turbo C,windows下不允许 直接访问 硬盘扇区
*/

#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>
#include <sys/stat.h>

int file_exists(char* filename);

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

    _creat("NOTEXISTS.FIL", _S_IWRITE); //创建文件
    printf("%d\n", _chmod("NOTEXISTS.FIL", _S_IREAD)); //修改权限为只读
    
    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];
    
    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
    
    strcpy( str, asctime(&t) );
    printf("%s\n", str);
    
    //获取当前时间
    time_t aclock;
    struct tm *today;
    time( &aclock );
    today = localtime(&aclock);
    printf( "The current date and time are: %s", asctime(today) );

    //输出年月日
    printf( "%d年%d月%d日\n", today->tm_year+1900, today->tm_mon+1,today->tm_mday );

    //系统时间
    char tmpbuf[128];
    _strtime( tmpbuf );
    printf( "OS time:%s\n",tmpbuf);

    //系统日期
    _strdate( tmpbuf );
    printf( "OS date:%s\n", tmpbuf);

    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);
注意:按照ISO C的规定,一个进程可以登记多达32个函数,
这些函数将由exit自动调用。atexit()注册的函数类型应为不接受任何参数的void函数,
exit调用这些注册函数的顺序与它们 登记时候的顺序相反。同一个函数如若登记多次,
则也会被调用多次。
程序例:
#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);
功  能: 把字符串转换成长整型数
用  法: int atoi(const char *nptr);

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

程序例:
*/
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    float f;
    int n;
    long l;
    char* str = "123.45";
    
    f = atof(str);
    n = atoi(str);
    l = atol(str);
    printf("string = %s float = %.2lf\n", str, f);
    printf("string = %s integer = %d\n", str, n);
    printf("string = %s integer = %ld\n", str, l);
    return 0;
}

 

posted @ 2013-01-07 17:07  pythonschool  阅读(381)  评论(0编辑  收藏  举报
刘华世的官方博客