邪恶八进制信息安全团队技术讨论组's Archiver

神舞 2006-11-29 19:20

[转载]C语言函数大全(a-f)

信息来源:VB新纪元

C语言函数大全(a-f) 作者:未知


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

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



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

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  
#include  
#include  
#include  

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  
#include  

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  
#include  

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  
#include  
#include  

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  
#include  
#include  
#include  

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  
#include  
#include  

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  
#include  

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  
#include  
#include  

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  
#include  

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  
#include  

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  
#include  

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  
#include  

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  
#include  

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  
#include  

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

#include  
#include  
#include  
#include  

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

#include  
#include  
#include  
#include  

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

#include  
#include  

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

/* Get current disk as 0, 1, ... */  
curdrive = bdos(0x19, 0, 0);  
return(&#39;A&#39; + 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  
#include  
#include  
#include  
#include  
#include  

#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  
#include  

#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()) == &#39;\x1B&#39;)  
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  
#include  

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  
#include  

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  
#include  
#include  

#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("&#39;%c&#39;\n", key);  
else  
printf("%#02x\n", key);  
return 0;  
}  



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

#include  
#include  

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  
#include  
#include  

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  
#include  
#include  
#include  

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  
#include  

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  
#include  

#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&#39;t in the table.\n");  

return 0;  
}


函数名: 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&#39;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  
#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&#39;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&#39;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  
#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&#39;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&#39;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;  
}
函数名: delay  
功 能: 将程序的执行暂停一段时间(毫秒)  
用 法: void delay(unsigned milliseconds);  
程序例:  
/* Emits a 440-Hz tone for 500 milliseconds */  
#include  

int main(void)  
{  
sound(440);  
delay(500);  
nosound();  

return 0;  
}  



函数名: delline  
功 能: 在文本窗口中删去一行  
用 法: void delline(void);  
程序例:  

#include  

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  
#include  
#include  
#include  

/* 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  
#include  
#include  
#include  

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  
#include  
#include  

#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  
#include  

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  
#include  

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  
#include  
#include  
#include  

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  
#include  
#include  
#include  

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&#39;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  
#include  
#include  
#include  

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&#39;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  
#include  
#include  
#include  

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


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

#include  
#include  
#include  

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  
#include  
#include  
#include  

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  
#include  
#include  

/* 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  
#include  
#include  
#include  
#include  

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  
#include  
#include  

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

printf("Command line arguments:\n");  
for (i=0; 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  
#include  
#include  

int main(void)  
{  
int status;  

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

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



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

#include  
#include  

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

result = exp(x);  
printf("&#39;e&#39; raised to the power \  
of %lf (e ^ %lf) = %lf\n",  
x, x, result);  

return 0;  
}

double fabs(double x);  

返回双精度x的绝对值。  


void far *farcalloc(unsigned long nunits,unsigned long unitsz);  

堆中给含有nu从远nits个元素的,每个元素占用unitsz个字节长的数组分配存贮区。  
成功是返回指向新分配的内存块的指针;若存贮空间不够,返回NULL。  

unsigned long farcoreleft(void);  

返回远堆中未用存贮区的大小。  


void farfree(void far *block);  

释放远堆中以前所分配内存块。  


void far *farmalloc(unsigned long nbytes);  

从远堆分配长nbytes字节的内存块,返回新地址。  


void far *farrealloc(void far *oldblock,unsigned long nbytes);  

调整已分配的内存块的大小为nbytes。需要的话,可把块中的内容复制到新位置。要注意:所有的可用的RAM可被分配,大于64K的块可被分配。  
远指针用于存取被分配的块。返回重新分配的内存块的地址。若存贮块重新分配失败,返回NULL。  

struct fcb {  

char fcb_drive; /* 0 = default, 1 = A, 2 = B */  

char fcb_name[8]; /* File name */  

char fcb_ext[3]; /* File extension */  

short fcb_curblk; /* Current block number */  

short fcb_recsize; /* Logical record size in bytes */  

long fcb_filsize; /* File size in bytes */  

short fcb_date; /* Date file was last written */  

char fcb_resv[10]; /* Reserved for DOS */  

char fcb_currec; /* Current record in block */  

long fcb_random; /* Random record number */  

};  

int fclose(FILE *stream);  

关闭一个流。  

成功返回0;失败是返回EOF。  

int fcloseall(void);  

关闭所有打开的流,除了stdin,stdout,stdprn,stderr和stdaux。  




char *fcvt(double value,int ndig,int *dec,int *sign);  

把浮点数转换成字符串,把浮点数value转换成长度为ndig的以空字符终结的字符串,返回一个指向这个字符串的指针,相对于串的开始处,  
小数点的位置,由dec间接存贮,dec若为负值,表示小数点在返回的字符串的左边。返回的字符串本身不带小数点。如果value的符号为负,由sign指向的值非零;否则它是零。  

FILE *fdopen(int handle,char *type);  

把流与一个文件描述字相联系地打开。fdopen使流stream与一个从creat,dup,dup2或open得到的文件描述字相联系。流的类型type必须与打开文件描述字handle的模式相匹配。  

类型字符串type可以是下列值之一:  

r,打开用于只读;  

w,创建用于写;  

a,打开用于写在原有内容后面,文件不存在时创建用于写;  

r+,打开已存在的文件用于更新(读和写);  

a+,添加打开,文件不存在时创建,在末尾更新。成功时返回新打开的流。出错时返回NULL。  

int feof(FILE *stream);  

测试所给stream的文件尾标记的宏。  

若检测到文件尾标记EOF或Ctrl-z返回非零值;否则,返回0。  


#include  

int ferror(FILE *stream);  

测试给定流读写错误的宏。  

若检测到给定流上的错误返回非0值。  

struct ffblk {  

char ff_reserved[21];  

char ff_attrib;  

unsigned ff_ftime;  

unsigned ff_fdate;  

long ff_fsize;  

char ff_name[13];  

};  




int fflush(FILE *stream);  

清除输入流的缓冲区,使它仍然打开,并把输出流的缓冲区的内容写入它所联系的文件中。成功时返回0,出错时返回EOF。  

int fgetc(FILE *stream);  

从流中读取下一个字符。  

成功是返回输入流中的下一个字符;至文件结束或出错时返回EOF。  


int fgetchar(void);  

从标准输入流中读取字符,时定义为getc(stdin)的宏。  
返回输入流stdin中的下一个字符,它已被转换成为无符号扩展的整形值。遇到出错或文件结束时返回EOF。  

int fgetpos(FILE stream,fpos_t *pos);  

取得当前文件指针。  

fgetpos把与stream相联系的文件指针的位置保存在pos所指的地方。  

其中,类型fpos_t在stdio.h中定义为  

typeddf long fpos_t;  

成功时返回0;失败时,返回非0值。  




char *fgets(char *s,int n,FILE *stream);  

成行读。  

从流stream读n-1个字符,或遇换行符&#39;\n&#39;为止,把读出的内容,存入s中。与gets不同,fgets在s未尾保留换行符。一个空字节被加入到s,用来标记串的结束。  
成功时返回s所指的字符串;在出错或遇到文件结束时返回NULL。  

long filelength(int handle);  

返回与handle相联系的文件长度的字节数,出错时返回-1L。  

int fileno(FILE *stream);  

返回与stream相联系的文件描述字 。  




int fileno(FILE *stream);  

返回与stream相联系的文件描述字。  


enum fill_patterns { /* Fill patterns for get/setfillstyle */  

0 EMPTY_FILL, /* fills area in background color */  

1 SOLID_FILL, /* fills area in solid fill color */  

2 LINE_FILL, /* --- fill */  

3 LTSLASH_FILL, /* /// fill */  

4 SLASH_FILL, /* /// fill with thick lines */  

5 BKSLASH_FILL, /* \\\ fill with thick lines */  

6 LTBKSLASH_FILL, /* \\\ fill */  

7 HATCH_FILL, /* light hatch fill */  

8 XHATCH_FILL, /* heavy cross hatch fill */  

9 INTERLEAVE_FILL, /* interleaving line fill */  

10 WIDE_DOT_FILL, /* Widely spaced dot fill */  

11 CLOSE_DOT_FILL, /* Closely spaced dot fill */  

12 USER_FILL /* user defined fill */  

void far fillellipse(int x,int y,int xradius,int yradius);  

画一填充椭圆。  
以(x,y)为中心,以xradius和yradius为水平和垂直半轴,用当前颜色画边线,画一椭圆,用当前填充颜色和填充方式填充。  

int findfirst(const char *pathname,struct ffblk *ffblk,int attrib);  

搜索磁盘目录。开始通过DOS系统调用0x4E对磁盘目录进行搜索。pathname中可含有要找的盘区路径文件名。  
文件名中可含有通配符(如*或?)。如果找到了匹配的文件,把文件目录信息填入ffblk结构。  

attrib是MS-DOS的文件属性字节,用于在搜索过程中选择符合条件的文件。  
attrib可以是在dos.h中定义的下列可取值之一:FA_RDONLY,只读;FA_HIDDEN隐藏;FA_SYSTEM系统文件;FA_LABEL卷标;FA_DIREC,目录;FA_ARCH,档案.可参考>.  

结构ffblk的格式如下:  

struct ffblk{  

char ff_reserved[21}; /*由DOS保留*/  

char ff_attrib; /*属性查找*/  

int ff_ftime; /*文件时间*/  

int f_fdate; /*文件日期*/  

long ff_fsize; /*文件大小*/  

char ff_name[13}; /*找到的文件名*/  

在成功的地找到了与搜索路径pathname相匹配的文件名后返回0;否则返回-1。  




int findnext(xtruct ffblk *ffblk);继续按findfirst的pathname搜索磁盘目录。  

成功地找到了与搜索路径pathname相匹配的后续文件名后返回0;否则返回-1。  




void far floodfill(int x,int y, int border);  

填充一个有界的区域。  
double floor(double x);  

返回〈=x的用双精度浮点数表示的最大整数。  


int flushall(void);  

清除所有缓冲区。  

清除所有与打开输入流相联系的缓冲区,并把所有和打开输出流相联系的缓冲区的内容写入到各自的文件中,跟在flushall后面的读操作,从输入文件中读新数据到缓冲区中。  
返回一个表示打开输入流和输出流总数的整数。  




couble fmod (double x, double y);  

返回x对y的模,即x/y的余数。  




void fnmerge(char *path,const char *drive,const char *dir,const char *name,const char *ext);  

由给定的盘区路径文件名扩展名等组成部分建立path。  

如果drive给出X:,dir给出\DIR\SUBDIR\,name给出NAME,和.ext给出.EXT,根据给定的组成部分,可建立一个完整的盘区路径文件名path为:  

X:\DIR\CUBDIR\NAME.EXT  

int fnsplit(const char *path,char *drive,char *cir,char *name,char *ext);  

可把由path给出的盘区路径文件名扩展名分解成为各自的组成部分.返回一整型数.  




FILE*fopen (const char *filemane,const char *mode);  

打开文件filemane返回相联系的流;出错返回NULL。  

mode字符串的可取值有:r,打开用于读;w,打开用于写;a,打开用于在原有内容之后写;r+,打开已存在的文件用于更新(读和写);w+创建新文件用于更新;a+,打开用于在原有内容之后更新,若文件不存在就创建。  




unsigned FP_OFF(void far *farptr);  

返回远指针farptr的地址偏移量。  

int fprintf(FILE *stream,const char *format[,argument,...]);  

照原样抄写格式串format的内容到流stream中,每遇到一个%,就按规定的格式,依次输出一个表达式argument的值到流stream中,返回写的字符个数。出错时返回EOF。  

FILE *stream;  

void main( void )  

{  

long l;  

float fp;  

char s[81];  

char c;  

stream = fopen( "fscanf.txt", "w+" );  

if( stream == NULL )  

printf( "The file fscanf.out was not opened\n" );  

else {fprintf( stream, "%s %ld %f%c", "a-string",65000, 3.14159, &#39;x&#39; );  

/* Set pointer to beginning of file: */  

fseek( stream, 0L, SEEK_SET );  

/* Read data back from file: */  

fscanf( stream, "%s", s );  

fscanf( stream, "%ld", &l );  

fscanf( stream, "%f",  

fscanf( stream, "%c", &c );/* Output data read: */  

printf( "%s\n", s );  

printf( "%ld\n", l );  

printf( "%f\n", fp );  

printf( "%c\n", c );  

fclose( stream ); }  

}  




int fputc(int c,FILE *stream);  

写一个字符到流中。  

成功时返回所写的字符,失败或出错时返回EOF。  

int fputchar(int c);  

送一个字符到屏幕。  

等价于fputc(c,stdout);成功时返回所写的字符,失败或出错时返回EOF。  

int fputs(const char *s,FILE *stream);  

把s所指的以空字符终结的字符串送入流中,不加换行符&#39;\n&#39;,不拷贝串结束符&#39;\0&#39;。  

成功时返回最后的字符,出错时返回EOF。  

size_t fread(void *ptr,size_t size,size_t n,FILE *stream);  

从所给的输入流stream中读取的n项数据,每一项数据长度为size字节,到由ptr所指的块中。  

成功时返回所读的数据项数(不是字节数);遇到文件结束或出错时可能返回0。  

void free(void *block);  

释放先前分配的首地址为block的内存块。  


int freemem(unsigned segx);  

释放先前由allocmem分配的段地址为segx的内存块。  

FILE *freopen(const char *filename,const char *mode,FILE *stream);  

用filename所指定的文件代替打开的流stream所指定的文件。返回stream,出错时返回NULL。  




double frexp(double x int *exponent);  

将x分解成尾数合指数。  

将给出的双精度数x分解成为在0.5和1之间尾数m和整形的指数n,使原来的x=m*(2的n次方),将整形指数n存入exponent所指的地址中,返回尾数m。  




int fscan(FILE *stream,char *format,address,...);  

fscanf扫描输入字段,从流stream读入,每读入一个字段,就依次按照由format所指的格式串中取一个从%开始的格式进行格式化之后存入对应的一个地址address中。  
返回成功地扫描,转换和存贮输入字段的个数,遇文件结束返回EOF。  

FILE *stream;  

void main( void )  

{  

long l;  

float fp;  

char s[81];  

char c;  

stream = fopen( "fscanf.txt", "w+" );  

if( stream == NULL )  

printf( "The file fscanf.out was not opened\n" );  

else {fprintf( stream, "%s %ld %f%c", "a-string",65000, 3.14159, &#39;x&#39; );  

/* Set pointer to beginning of file: */  

fseek( stream, 0L, SEEK_SET );  

/* Read data back from file: */  

fscanf( stream, "%s", s );  

fscanf( stream, "%ld", &l );  

fscanf( stream, "%f",  

fscanf( stream, "%c", &c );/* Output data read: */  

printf( "%s\n", s );  

printf( "%ld\n", l );  

printf( "%f\n", fp );  

printf( "%c\n", c );  

fclose( stream ); }  

}  




int fseek(FILE *stream,long offset,int whence);  

在流上重新定位文件结构的位置。fseek设置与流stream相联系的文件指针到新的位置,新位置与whence给定的文件位置的距离为offset字节。  
whence的取值必须是0,1或2中的一个,分别代表在stdio.h中定义的三个符号常量:  

0是SEEK_SET,是文件开始位置;  

1是SEEK_CUR,是当前的指针位置;  

2时SEEK_END,是文件末尾。  

调用了fseek之后,在更新的文件位置上,下一个操作可以是输入;也可以是输出。成功地移动了指针时,fseek返回0;出错或失败时返回非0值。  

例:  

#include  

FILE *stream;  

void main( void )  

{  

long l;  

float fp;  

char s[81];  

char c;  

stream = fopen( "fscanf.txt", "w+" );  

if( stream == NULL )  

printf( "The file fscanf.out was not opened\n" );  

else {fprintf( stream, "%s %ld %f%c", "a-string",65000, 3.14159, &#39;x&#39; );  

/* Set pointer to beginning of file: */  

fseek( stream, 0L, SEEK_SET );  

/* Read data back from file: */  

fscanf( stream, "%s", s );  

fscanf( stream, "%ld", &l );  

fscanf( stream, "%f",  

fscanf( stream, "%c", &c );/* Output data read: */  

printf( "%s\n", s );  

printf( "%ld\n", l );  

printf( "%f\n", fp );  

printf( "%c\n", c );  

fclose( stream ); }  

}  




int fsetpos(FILE *stream,const fpos_t *pos);  

fsetpos把与stream相联系的文件指针置于新的位置。这个新的位置是先前对此流调用fgetpos所得的值。  
fsetpos清除stream所指文件的文件结束标志,并消除对该文件的所有ungetc操作。在调用fsetpos之后,文件的下一操作可以是输入或输出。  

调用fsetpos成功时返回0;若失败,返回非0值。  




int fstat(int handle,struct stat *statbuf);  

把与handle相联系的打开文件或目录的信息存入到statbuf所指的定义在sys\stat.h中的stat结构中。成功时返回0;出错时返回-1。  

long int ftell(FILE *stream);  

返回流stream中当前文件指针位置。偏移量是文件开始算起的字节数。出错时返回-1L,是长整数的-1值。  

void ftime(struct timeb *buf);  

把当前时间存入到在sys\timeb.h中定义的timeb结构中。  




size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream);  

fwrite从指针ptr开始把n个数据项添加到给定输出流stream,每个数据项的长度为size个字节。  

成功是返回确切的数据项数(不是字节数);出错时返回短(short)计数值。可能是0。

  

evilknight 2007-1-26 20:23

C函数速查....

页: [1]
© 1999-2008 EvilOctal Security Team