C语言库函数(F类字母)
转自:Hacker001.Com 时间:2004年5月24日5:16
函数名: fabs
功 能: 返回浮点数的绝对值
用 法: double fabs(double x);
程序例:
#include
#includeint main(void)
{
float number = -1234.0;printf("number: %f absolute value: %f ",
number, fabs(number));
return 0;
}
函数名: farcalloc
功 能: 从远堆栈中申请空间
用 法: void far *farcalloc(unsigned long units, unsigned ling unitsz);
程序例:
#include
#include
#include
#includeint main(void)
{
char far *fptr;
char *str = "Hello";/* allocate memory for the far pointer */
fptr = farcalloc(10, sizeof(char));/* copy "Hello" into allocated memory */
/*
Note: movedata is used because you
might be in a small data model, in
which case a normal string copy routine
can not be used since it assumes the
pointer size is near.
*/
movedata(FP_SEG(str), FP_OFF(str),
FP_SEG(fptr), FP_OFF(fptr),
strlen(str));/* display string (note the F modifier) */
printf("Far string is: %Fs ", fptr);/* free the memory */
farfree(fptr);return 0;
}
函数名: farcoreleft
功 能: 返回远堆中未作用存储区大小
用 法: long farcoreleft(void);
程序例:#include
#includeint main(void)
{
printf("The difference between the
highest allocated block in the
far ");
printf("heap and the top of the far heap
is: %lu bytes ", farcoreleft());return 0;
}
函数名: farfree
功 能: 从远堆中释放一块
用 法: void farfree(void);
程序例:#include
#include
#include
#includeint main(void)
{
char far *fptr;
char *str = "Hello";/* allocate memory for the far pointer */
fptr = farcalloc(10, sizeof(char));/* copy "Hello" into allocated memory */
/*
Note: movedata is used because you might be in a small data model,
in which case a normal string copy routine cant be used since it
assumes the pointer size is near.
*/
movedata(FP_SEG(str), FP_OFF(str),
FP_SEG(fptr), FP_OFF(fptr),
strlen(str));/* display string (note the F modifier) */
printf("Far string is: %Fs ", fptr);/* free the memory */
farfree(fptr);return 0;
}
函数名: farmalloc
功 能: 从远堆中分配存储块
用 法: void far *farmalloc(unsigned long size);
程序例:#include
#include
#include
#includeint main(void)
{
char far *fptr;
char *str = "Hello";/* allocate memory for the far pointer */
fptr = farmalloc(10);/* copy "Hello" into allocated memory */
/*
Note: movedata is used because we might
be in a small data model, in which case
a normal string copy routine can not be
used since it assumes the pointer size
is near.
*/
movedata(FP_SEG(str), FP_OFF(str),
FP_SEG(fptr), FP_OFF(fptr),
strlen(str));/* display string (note the F modifier) */
printf("Far string is: %Fs ", fptr);/* free the memory */
farfree(fptr);return 0;
}
函数名: farrealloc
功 能: 调整远堆中的分配块
用 法: void far *farrealloc(void far *block, unsigned long newsize);
程序例:#include
#includeint main(void)
{
char far *fptr;fptr = farmalloc(10);
printf("First address: %Fp ", fptr);
fptr = farrealloc(fptr,20);
printf("New address : %Fp ", fptr);
farfree(fptr);
return 0;
}
函数名: fclose
功 能: 关闭一个流
用 法: int fclose(FILE *stream);
程序例:#include
#includeint main(void)
{
FILE *fp;
char buf[11] = "0123456789";/* create a file containing 10 bytes */
fp = fopen("DUMMY.FIL", "w");
fwrite(&buf, strlen(buf), 1, fp);/* close the file */
fclose(fp);
return 0;
}
函数名: fcloseall
功 能: 关闭打开流
用 法: int fcloseall(void);
程序例:#include
int main(void)
{
int streams_closed;/* open two streams */
fopen("DUMMY.ONE", "w");
fopen("DUMMY.TWO", "w");/* close the open streams */
streams_closed = fcloseall();if (streams_closed == EOF)
/* issue an error message */
perror("Error");
else
/* print result of fcloseall() function */
printf("%d streams were closed. ", streams_closed);return 0;
}
函数名: fcvt
功 能: 把一个浮点数转换为字符串
用 法: char *fcvt(double value, int ndigit, int *decpt, int *sign);
程序例:#include
#include
#includeint 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 ", string, dec, sign);value = -123.45;
ndig= 15;
string = ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d sign = %d ",
string, dec, sign);
value = 0.6789e5; /* scientific
notation */
ndig = 5;
string = ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d
sign = %d ", string, dec, sign);return 0;
}
函数名: fdopen
功 能: 把流与一个文件句柄相接
用 法: FILE *fdopen(int handle, char *type);
程序例:#include
#include
#include
#includeint main(void)
{
int handle;
FILE *stream;/* open a file */
handle = open("DUMMY.FIL", O_CREAT,
S_IREAD | S_IWRITE);/* now turn the handle into a stream */
stream = fdopen(handle, "w");if (stream == NULL)
printf("fdopen failed ");
else
{
fprintf(stream, "Hello world ");
fclose(stream);
}
return 0;
}
函数名: feof
功 能: 检测流上的文件结束符
用 法: int feof(FILE *stream);
程序例:#include
int main(void)
{
FILE *stream;/* open a file for reading */
stream = fopen("DUMMY.FIL", "r");/* read a character from the file */
fgetc(stream);/* check for EOF */
if (feof(stream))
printf("We have reached end-of-file ");/* close the file */
fclose(stream);
return 0;
}
函数名: ferror
功 能: 检测流上的错误
用 法: int ferror(FILE *stream);
程序例:#include
int main(void)
{
FILE *stream;/* open a file for writing */
stream = fopen("DUMMY.FIL", "w");/* force an error condition by attempting to read */
(void) getc(stream);if (ferror(stream)) /* test for an error on the stream */
{
/* display an error message */
printf("Error reading from DUMMY.FIL ");/* reset the error and EOF indicators */
clearerr(stream);
}fclose(stream);
return 0;
}
函数名: fflush
功 能: 清除一个流
用 法: int fflush(FILE *stream);
程序例:#include
#include
#include
#includevoid flush(FILE *stream);
int main(void)
{
FILE *stream;
char msg[] = "This is a test";/* create a file */
stream = fopen("DUMMY.FIL", "w");/* write some data to the file */
fwrite(msg, strlen(msg), 1, stream);clrscr();
printf("Press any key to flush
DUMMY.FIL:");
getch();/* flush the data to DUMMY.FIL without
closing it */
flush(stream);printf(" File was flushed, Press any key
to quit:");
getch();
return 0;
}vo
补充:综合编程 , 安全编程 ,