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