首页 > 代码库 > C语言库函数大全及应用实例一
C语言库函数大全及应用实例一
函数名: abort
功 能: 异常终止一个进程
用 法: void abort(void);
程序例:
#i nclude
#i nclude
int main(void)
{
printf("Calling abort()\n");
abort();
return 0; /* This is never reached */
}
函数名: abs
功 能: 求整数的绝对值
用 法: int abs(int i);
程序例:
#i nclude
#i nclude
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 */
#i nclude
#i nclude
#i nclude
#i nclude
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);
程序例:
#i nclude
#i nclude
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);
程序例:
#i nclude
#i nclude
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);
程序例:
#i nclude
#i nclude
#i nclude
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 int main(void) /* initialize graphics and local variables */ /* read result of initialization */ exit(1); /* terminate with an error code */ midx = getmaxx() / 2; /* draw arc */ /* clean up */ 函数名: asctime int main(void) /* sample loading of tm structure */ t.tm_sec = 1; /* Seconds */ /* converts structure to null terminated strcpy(str, asctime(&t)); return 0; 函数名: asin int main(void) result = asin(x); 函数名: assert struct ITEM { /* add item to list, make sure list is not null */ int main(void) 函数名: atan int main(void) result = atan(x); 函数名: atan2 int main(void) result = atan2(y, x); 函数名: atexit void exit_fn1(void) void exit_fn2(void) int main(void) 函数名: atof int main(void) f = atof(str); 函数名: atoi int main(void) n = atoi(str); 函数名: atol #i nclude int main(void) l = atol(lstr); 函数名: bar #i nclude int main(void) /* initialize graphics and local variables */ /* read result of initialization */ midx = getmaxx() / 2; /* loop through the fill patterns */ /* draw the bar */ getch(); /* clean up */ 函数名: bar3d #i nclude int main(void) /* initialize graphics, local variables */ /* read result of initialization */ midx = getmaxx() / 2; /* loop through the fill patterns */ /* draw the 3-d bar */ getch(); /* clean up */ 函数名: bdos #i nclude /* Get current drive as ‘A‘, ‘B‘, ... */ /* Get current disk as 0, 1, ... */ int main(void) 函数名: bdosptr #i nclude #define BUFLEN 80 int main(void) printf("Enter full pathname of a directory\n"); test = bdosptr(0x3B,buffer,0); getcwd(buffer, BUFLEN); return 0; 函数名: bioscom #i nclude #define COM1 0 #define SETTINGS ( 0x80 | 0x02 | 0x00 | 0x00) int main(void) bioscom(0, SETTINGS, COM1); 函数名: biosdisk #i nclude int main(void) printf("Testing to see if drive a: is ready\n"); return 0; 函数名: biosequip #i nclude int main(void) printf("Testing to see if drive a: is ready\n"); return 0;
功 能: 画一弧线
用 法: void far arc(int x, int y, int stangle, int endangle, int radius);
程序例:
#i nclude
#i nclude
#i nclude
#i nclude
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy;
int stangle = 45, endangle = 135;
int radius = 100;
initgraph(&gdriver, &gmode, "");
errorcode = graphresult(); /* an error occurred */
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
}
midy = getmaxy() / 2;
setcolor(getmaxcolor());
arc(midx, midy, stangle, endangle, radius);
getch();
closegraph();
return 0;
}
功 能: 转换日期和时间为ASCII码
用 法: char *asctime(const struct tm *tblock);
程序例:
#i nclude
#i nclude
#i nclude
{
struct tm t;
char str[80];
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 */
string */
printf("%s\n", str);
}
功 能: 反正弦函数
用 法: double asin(double x);
程序例:
#i nclude
#i nclude
{
double result;
double x = 0.5;
printf("The arc sin of %lf is %lf\n", x, result);
return(0);
}
功 能: 测试一个条件并可能使程序终止
用 法: void assert(int test);
程序例:
#i nclude
#i nclude
#i nclude
int key;
int value;
};
void additem(struct ITEM *itemptr) {
assert(itemptr != NULL);
/* add item to list */
}
{
additem(NULL);
return 0;
}
功 能: 反正切函数
用 法: double atan(double x);
程序例:
#i nclude
#i nclude
{
double result;
double x = 0.5;
printf("The arc tangent of %lf is %lf\n", x, result);
return(0);
}
功 能: 计算Y/X的反正切值
用 法: double atan2(double y, double x);
程序例:
#i nclude
#i nclude
{
double result;
double x = 90.0, y = 45.0;
printf("The arc tangent ratio of %lf is %lf\n", (y / x), result);
return 0;
}
功 能: 注册终止函数
用 法: int atexit(atexit_t func);
程序例:
#i nclude
#i nclude
{
printf("Exit function #1 called\n");
}
{
printf("Exit function #2 called\n");
}
{
/* post exit function #1 */
atexit(exit_fn1);
/* post exit function #2 */
atexit(exit_fn2);
return 0;
}
功 能: 把字符串转换成浮点数
用 法: double atof(const char *nptr);
程序例:
#i nclude
#i nclude
{
float f;
char *str = "12345.67";
printf("string = %s float = %f\n", str, f);
return 0;
}
功 能: 把字符串转换成长整型数
用 法: int atoi(const char *nptr);
程序例:
#i nclude
#i nclude
{
int n;
char *str = "12345.67";
printf("string = %s integer = %d\n", str, n);
return 0;
}
功 能: 把字符串转换成长整型数
用 法: long atol(const char *nptr);
程序例:
#i nclude
{
long l;
char *str = "98765432";
printf("string = %s integer = %ld\n", str, l);
return(0);
}
功 能: 画一个二维条形图
用 法: void far bar(int left, int top, int right, int bottom);
程序例:
#i nclude
#i nclude
#i nclude
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy, i;
initgraph(&gdriver, &gmode, "");
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 */
}
midy = getmaxy() / 2;
for (i=SOLID_FILL; i
{
/* set the fill style */
setfillstyle(i, getmaxcolor());
bar(midx-50, midy-50, midx+50,
midy+50);
}
closegraph();
return 0;
}
功 能: 画一个三维条形图
用 法: void far bar3d(int left, int top, int right, int bottom,
int depth, int topflag);
程序例:
#i nclude
#i nclude
#i nclude
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy, i;
initgraph(&gdriver, &gmode, "");
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 */
}
midy = getmaxy() / 2;
for (i=EMPTY_FILL; i
{
/* set the fill style */
setfillstyle(i, getmaxcolor());
bar3d(midx-50, midy-50, midx+50, midy+50, 10, 1);
}
closegraph();
return 0;
}
功 能: DOS系统调用
用 法: int bdos(int dosfun, unsigned dosdx, unsigned dosal);
程序例:
#i nclude
char current_drive(void)
{
char curdrive;
curdrive = bdos(0x19, 0, 0);
return(‘A‘ + curdrive);
}
{
printf("The current drive is %c:\n", current_drive());
return 0;
}
功 能: DOS系统调用
用 法: int bdosptr(int dosfun, void *argument, unsigned dosal);
程序例:
#i nclude
#i nclude
#i nclude
#i nclude
#i nclude
{
char buffer[BUFLEN];
int test;
gets(buffer);
if(test)
{
printf("DOS error message: %d\n", errno);
/* See errno.h for error listings */
exit (1);
}
printf("The current directory is: %s\n", buffer);
}
功 能: 串行I/O通信
用 法: int bioscom(int cmd, char abyte, int port);
程序例:
#i nclude
#define DATA_READY 0x100
#define TRUE 1
#define FALSE 0
{
int in, out, status, DONE = FALSE;
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;
}
功 能: 软硬盘I/O
用 法: int biosdisk(int cmd, int drive, int head, int track, int sector
int nsects, void *buffer);
程序例:
#i nclude
{
int result;
char buffer[512];
result = biosdisk(4,0,0,0,0,1,buffer);
result &= 0x02;
(result) ? (printf("Drive A: Ready\n")) :
(printf("Drive A: Not Ready\n"));
}
功 能: 检查设备
用 法: int biosequip(void);
程序例:
#i nclude
{
int result;
char buffer[512];
result = biosdisk(4,0,0,0,0,1,buffer);
result &= 0x02;
(result) ? (printf("Drive A: Ready\n")) :
(printf("Drive A: Not Ready\n"));
}
C语言库函数大全及应用实例一