PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 3034|回复: 8

C语言库函数大全及应用实例一

[复制链接]
发表于 2006-8-24 09:44:00 | 显示全部楼层 |阅读模式

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
功 能: 画一弧线
用 法: void far arc(int x, int y, int stangle, int endangle, int radius);
程序例:
#i nclude
#i nclude
#i nclude
#i nclude


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);
程序例:
#i nclude
#i nclude
#i nclude

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);
程序例:
#i nclude
#i nclude

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);
程序例:
#i nclude
#i nclude
#i nclude

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);
程序例:
#i nclude
#i nclude

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);
程序例:
#i nclude
#i nclude

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);
程序例:
#i nclude
#i nclude

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);
程序例:
#i nclude
#i nclude

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


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

回复

使用道具 举报

 楼主| 发表于 2006-8-24 09:44:00 | 显示全部楼层

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

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);
程序例:

#i nclude
#i nclude

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

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

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


#i nclude
#i nclude
#i nclude
#i nclude

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
{
/* 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);
程序例:

#i nclude
#i nclude
#i nclude
#i nclude

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
{
/* 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);
程序例:

#i nclude
#i nclude

/* 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);
程序例:

#i nclude
#i nclude
#i nclude
#i nclude
#i nclude
#i nclude

#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);
程序例:

#i nclude
#i nclude

#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);
程序例:

#i nclude
#i nclude

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);
程序例:

#i nclude
#i nclude

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;
}

回复 支持 反对

使用道具 举报

发表于 2007-2-26 07:39:00 | 显示全部楼层
为什么楼主上传上来的程序中头文件include后面没有东东咯?
回复 支持 反对

使用道具 举报

发表于 2007-3-27 02:36:00 | 显示全部楼层
为什么我感觉楼主的程序都没写完呢?
回复 支持 反对

使用道具 举报

发表于 2007-5-1 12:19:00 | 显示全部楼层
c都忘完了,有点难啊
回复 支持 反对

使用道具 举报

发表于 2007-5-13 19:49:00 | 显示全部楼层

好好学啊

回复 支持 反对

使用道具 举报

发表于 2007-5-17 15:21:00 | 显示全部楼层

正在学C语言中,谢谢

[em08]
回复 支持 反对

使用道具 举报

发表于 2007-5-17 19:48:00 | 显示全部楼层

学习中

回复 支持 反对

使用道具 举报

发表于 2008-1-25 13:59:00 | 显示全部楼层
谢谢了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-4-28 01:43 , Processed in 0.047394 second(s), 24 queries .

快速回复 返回顶部 返回列表