Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
f.txt
Package: C.rar [view]
Upload User: harvey99
Upload Date: 2020-01-11
Package Size: 938k
Code Size: 26k
Category:
Other Books
Development Platform:
CHM
- 函数名: fabs
- 功 能: 返回浮点数的绝对值
- 用 法: double fabs(double x);
- 程序例:
- #include <stdio.h>
- #include <math.h>
- int main(void)
- {
- float number = -1234.0;
- printf("number: %f absolute value: %fn",
- number, fabs(number));
- return 0;
- }
- 函数名: farcalloc
- 功 能: 从远堆栈中申请空间
- 用 法: void far *farcalloc(unsigned long units, unsigned ling unitsz);
- 程序例:
- #include <stdio.h>
- #include <alloc.h>
- #include <string.h>
- #include <dos.h>
- int 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: %Fsn", fptr);
- /* free the memory */
- farfree(fptr);
- return 0;
- }
- 函数名: farcoreleft
- 功 能: 返回远堆中未作用存储区大小
- 用 法: long farcoreleft(void);
- 程序例:
- #include <stdio.h>
- #include <alloc.h>
- int main(void)
- {
- printf("The difference between the
- highest allocated block in the
- farn");
- printf("heap and the top of the far heap
- is: %lu bytesn", farcoreleft());
- return 0;
- }
- 函数名: farfree
- 功 能: 从远堆中释放一块
- 用 法: void farfree(void);
- 程序例:
- #include <stdio.h>
- #include <alloc.h>
- #include <string.h>
- #include <dos.h>
- int 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't 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: %Fsn", fptr);
- /* free the memory */
- farfree(fptr);
- return 0;
- }
- 函数名: farmalloc
- 功 能: 从远堆中分配存储块
- 用 法: void far *farmalloc(unsigned long size);
- 程序例:
- #include <stdio.h>
- #include <alloc.h>
- #include <string.h>
- #include <dos.h>
- int 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: %Fsn", fptr);
- /* free the memory */
- farfree(fptr);
- return 0;
- }
- 函数名: farrealloc
- 功 能: 调整远堆中的分配块
- 用 法: void far *farrealloc(void far *block, unsigned long newsize);
- 程序例:
- #include <stdio.h>
- #include <alloc.h>
- int main(void)
- {
- char far *fptr;
- fptr = farmalloc(10);
- printf("First address: %Fpn", fptr);
- fptr = farrealloc(fptr,20);
- printf("New address : %Fpn", fptr);
- farfree(fptr);
- return 0;
- }
- 函数名: fclose
- 功 能: 关闭一个流
- 用 法: int fclose(FILE *stream);
- 程序例:
- #include <string.h>
- #include <stdio.h>
- int 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 <stdio.h>
- 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.n", streams_closed);
- return 0;
- }
- 函数名: fcvt
- 功 能: 把一个浮点数转换为字符串
- 用 法: char *fcvt(double value, int ndigit, int *decpt, int *sign);
- 程序例:
- #include <stdlib.h>
- #include <stdio.h>
- #include <conio.h>
- 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 = %dn", string, dec, sign);
- value = -123.45;
- ndig= 15;
- string = ecvt(value,ndig,&dec,&sign);
- printf("string = %s dec = %d sign = %dn",
- string, dec, sign);
- value = 0.6789e5; /* scientific
- notation */
- ndig = 5;
- string = ecvt(value,ndig,&dec,&sign);
- printf("string = %s dec = %d
- sign = %dn", string, dec, sign);
- return 0;
- }
- 函数名: fdopen
- 功 能: 把流与一个文件句柄相接
- 用 法: FILE *fdopen(int handle, char *type);
- 程序例:
- #include <sysstat.h>
- #include <stdio.h>
- #include <fcntl.h>
- #include <io.h>
- int 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 failedn");
- else
- {
- fprintf(stream, "Hello worldn");
- fclose(stream);
- }
- return 0;
- }
- 函数名: feof
- 功 能: 检测流上的文件结束符
- 用 法: int feof(FILE *stream);
- 程序例:
- #include <stdio.h>
- 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-filen");
- /* close the file */
- fclose(stream);
- return 0;
- }
- 函数名: ferror
- 功 能: 检测流上的错误
- 用 法: int ferror(FILE *stream);
- 程序例:
- #include <stdio.h>
- 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.FILn");
- /* reset the error and EOF indicators */
- clearerr(stream);
- }
- fclose(stream);
- return 0;
- }
- 函数名: fflush
- 功 能: 清除一个流
- 用 法: int fflush(FILE *stream);
- 程序例:
- #include <string.h>
- #include <stdio.h>
- #include <conio.h>
- #include <io.h>
- void 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("nFile was flushed, Press any key
- to quit:");
- getch();
- return 0;
- }
- void flush(FILE *stream)
- {
- int duphandle;
- /* flush the stream'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);
- }
- 函数名: fgetc
- 功 能: 从流中读取字符
- 用 法: int fgetc(FILE *stream);
- 程序例:
- #include <string.h>
- #include <stdio.h>
- #include <conio.h>
- int main(void)
- {
- FILE *stream;
- char string[] = "This is a test";
- char ch;
- /* open a file for update */
- stream = fopen("DUMMY.FIL", "w+");
- /* write a string into the file */
- fwrite(string, strlen(string), 1, stream);
- /* seek to the beginning of the file */
- fseek(stream, 0, SEEK_SET);
- do
- {
- /* read a char from the file */
- ch = fgetc(stream);
- /* display the character */
- putch(ch);
- } while (ch != EOF);
- fclose(stream);
- return 0;
- }
- 函数名: fgetchar
- 功 能: 从流中读取字符
- 用 法: int fgetchar(void);
- 程序例:
- #include <stdio.h>
- int main(void)
- {
- char ch;
- /* prompt the user for input */
- printf("Enter a character followed by
- <Enter>: ");
- /* read the character from stdin */
- ch = fgetchar();
- /* display what was read */
- printf("The character read is: '%c'n",
- ch);
- return 0;
- }
- 函数名: fgetpos
- 功 能: 取得当前文件的句柄
- 用 法: int fgetpos(FILE *stream);
- 程序例:
- #include <string.h>
- #include <stdio.h>
- int main(void)
- {
- FILE *stream;
- char string[] = "This is a test";
- fpos_t filepos;
- /* open a file for update */
- stream = fopen("DUMMY.FIL", "w+");
- /* write a string into the file */
- fwrite(string, strlen(string), 1, stream);
- /* report the file pointer position */
- fgetpos(stream, &filepos);
- printf("The file pointer is at byte
- %ldn", filepos);
- fclose(stream);
- return 0;
- }
- 函数名: fgets
- 功 能: 从流中读取一字符串
- 用 法: char *fgets(char *string, int n, FILE *stream);
- 程序例:
- #include <string.h>
- #include <stdio.h>
- int main(void)
- {
- FILE *stream;
- char string[] = "This is a test";
- char msg[20];
- /* open a file for update */
- stream = fopen("DUMMY.FIL", "w+");
- /* write a string into the file */
- fwrite(string, strlen(string), 1, stream);
- /* seek to the start of the file */
- fseek(stream, 0, SEEK_SET);
- /* read a string from the file */
- fgets(msg, strlen(string)+1, stream);
- /* display the string */
- printf("%s", msg);
- fclose(stream);
- return 0;
- }
- 函数名: filelength
- 功 能: 取文件长度字节数
- 用 法: long filelength(int handle);
- 程序例:
- #include <string.h>
- #include <stdio.h>
- #include <fcntl.h>
- #include <io.h>
- int main(void)
- {
- int handle;
- char buf[11] = "0123456789";
- /* create a file containing 10 bytes */
- handle = open("DUMMY.FIL", O_CREAT);
- write(handle, buf, strlen(buf));
- /* display the size of the file */
- printf("file length in bytes: %ldn",
- filelength(handle));
- /* close the file */
- close(handle);
- return 0;
- }
- 函数名: fillellipse
- 功 能: 画出并填充一椭圆
- 用 法: void far fillellipse(int x, int y, int xradius, int yradius);
- 程序例:
- #include <graphics.h>
- #include <conio.h>
- int main(void)
- {
- int gdriver = DETECT, gmode;
- int xcenter, ycenter, i;
- initgraph(&gdriver,&gmode,"");
- xcenter = getmaxx() / 2;
- ycenter = getmaxy() / 2;
- for (i=0; i<13; i++)
- {
- setfillstyle(i,WHITE);
- fillellipse(xcenter,ycenter,100,50);
- getch();
- }
- closegraph();
- return 0;
- }
- 函数名: fillpoly
- 功 能: 画并填充一个多边形
- 用 法: void far fillpoly(int numpoints, int far *polypoints);
- 程序例:
- #include <graphics.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <conio.h>
- int main(void)
- {
- /* request auto detection */
- int gdriver = DETECT, gmode, errorcode;
- int i, maxx, maxy;
- /* our polygon array */
- int poly[8];
- /* initialize graphics, local variables */
- initgraph(&gdriver, &gmode, "");
- /* read result of initialization */
- errorcode = graphresult();
- if (errorcode != grOk)
- /* an error occurred */
- {
- printf("Graphics error: %sn",
- grapherrormsg(errorcode));
- printf("Press any key to halt:");
- getch();
- exit(1);
- /* terminate with an error code */
- }
- 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;
- /*
- 4th vertex. fillpoly automatically
- closes the polygon.
- */
- poly[6] = maxx / 2;
- poly[7] = maxy / 2;
- /* loop through the fill patterns */
- for (i=EMPTY_FILL; i<USER_FILL; i++)
- {
- /* set fill pattern */
- setfillstyle(i, getmaxcolor());
- /* draw a filled polygon */
- fillpoly(4, poly);
- getch();
- }
- /* clean up */
- closegraph();
- return 0;
- }
- 函数名: findfirst, findnext
- 功 能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件
- 用 法: int findfirst(char *pathname, struct ffblk *ffblk, int attrib);
- int findnext(struct ffblk *ffblk);
- 程序例:
- /* findnext example */
- #include <stdio.h>
- #include <dir.h>
- int main(void)
- {
- struct ffblk ffblk;
- int done;
- printf("Directory listing of *.*n");
- done = findfirst("*.*",&ffblk,0);
- while (!done)
- {
- printf(" %sn", ffblk.ff_name);
- done = findnext(&ffblk);
- }
- return 0;
- }
- 函数名: floodfill
- 功 能: 填充一个有界区域
- 用 法: void far floodfill(int x, int y, int border);
- 程序例:
- #include <graphics.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <conio.h>
- int main(void)
- {
- /* request auto detection */
- int gdriver = DETECT, gmode, errorcode;
- int maxx, maxy;
- /* initialize graphics, local variables */
- initgraph(&gdriver, &gmode, "");
- /* read result of initialization */
- errorcode = graphresult();
- if (errorcode != grOk)
- /* an error occurred */
- {
- printf("Graphics error: %sn",
- grapherrormsg(errorcode));
- printf("Press any key to halt:");
- getch();
- exit(1);
- /* terminate with an error code */
- }
- maxx = getmaxx();
- maxy = getmaxy();
- /* select drawing color */
- setcolor(getmaxcolor());
- /* select fill color */
- setfillstyle(SOLID_FILL, getmaxcolor());
- /* draw a border around the screen */
- rectangle(0, 0, maxx, maxy);
- /* draw some circles */
- circle(maxx / 3, maxy /2, 50);
- circle(maxx / 2, 20, 100);
- circle(maxx-20, maxy-50, 75);
- circle(20, maxy-20, 25);
- /* wait for a key */
- getch();
- /* fill in bounded region */
- floodfill(2, 2, getmaxcolor());
- /* clean up */
- getch();
- closegraph();
- return 0;
- }
- 函数名: floor
- 功 能: 向下舍入
- 用 法: double floor(double x);
- 程序例:
- #include <stdio.h>
- #include <math.h>
- int main(void)
- {
- double number = 123.54;
- double down, up;
- down = floor(number);
- up = ceil(number);
- printf("original number %10.2lfn",
- number);
- printf("number rounded down %10.2lfn",
- down);
- printf("number rounded up %10.2lfn",
- up);
- return 0;
- }
- 函数名: flushall
- 功 能: 清除所有缓冲区
- 用 法: int flushall(void);
- 程序例:
- #include <stdio.h>
- int main(void)
- {
- FILE *stream;
- /* create a file */
- stream = fopen("DUMMY.FIL", "w");
- /* flush all open streams */
- printf("%d streams were flushed.n",
- flushall());
- /* close the file */
- fclose(stream);
- return 0;
- }
- 函数名: fmod
- 功 能: 计算x对y的模, 即x/y的余数
- 用 法: double fmod(double x, double y);
- 程序例:
- #include <stdio.h>
- #include <math.h>
- int main(void)
- {
- double x = 5.0, y = 2.0;
- double result;
- result = fmod(x,y);
- printf("The remainder of (%lf / %lf) is
- %lfn", x, y, result);
- return 0;
- }
- 函数名: fnmerge
- 功 能: 建立新文件名
- 用 法: void fnerge(char *path, char *drive, char *dir);
- 程序例:
- #include <string.h>
- #include <stdio.h>
- #include <dir.h>
- int main(void)
- {
- char s[MAXPATH];
- char drive[MAXDRIVE];
- char dir[MAXDIR];
- char file[MAXFILE];
- char ext[MAXEXT];
- getcwd(s,MAXPATH); /* get the current working directory */
- strcat(s,"\"); /* append on a trailing character */
- fnsplit(s,drive,dir,file,ext); /* split the string to separate elems */
- strcpy(file,"DATA");
- strcpy(ext,".TXT");
- fnmerge(s,drive,dir,file,ext); /* merge everything into one string */
- puts(s); /* display resulting string */
- return 0;
- }
- 函数名: fopen
- 功 能: 打开一个流
- 用 法: FILE *fopen(char *filename, char *type);
- 程序例:
- #include <stdlib.h>
- #include <stdio.h>
- #include <dir.h>
- int main(void)
- {
- char *s;
- char drive[MAXDRIVE];
- char dir[MAXDIR];
- char file[MAXFILE];
- char ext[MAXEXT];
- int flags;
- s=getenv("COMSPEC"); /* get the comspec environment parameter */
- flags=fnsplit(s,drive,dir,file,ext);
- printf("Command processor info:n");
- if(flags & DRIVE)
- printf("tdrive: %sn",drive);
- if(flags & DIRECTORY)
- printf("tdirectory: %sn",dir);
- if(flags & FILENAME)
- printf("tfile: %sn",file);
- if(flags & EXTENSION)
- printf("textension: %sn",ext);
- return 0;
- }
- 函数名: fprintf
- 功 能: 传送格式化输出到一个流中
- 用 法: int fprintf(FILE *stream, char *format[, argument,...]);
- 程序例:
- /* Program to create backup of the
- AUTOEXEC.BAT file */
- #include <stdio.h>
- int main(void)
- {
- FILE *in, *out;
- if ((in = fopen("\AUTOEXEC.BAT", "rt"))
- == NULL)
- {
- fprintf(stderr, "Cannot open input
- file.n");
- return 1;
- }
- if ((out = fopen("\AUTOEXEC.BAK", "wt"))
- == NULL)
- {
- fprintf(stderr, "Cannot open output
- file.n");
- return 1;
- }
- while (!feof(in))
- fputc(fgetc(in), out);
- fclose(in);
- fclose(out);
- return 0;
- }
- 函数名: FP_OFF
- 功 能: 获取远地址偏移量
- 用 法: unsigned FP_OFF(void far *farptr);
- 程序例:
- /* FP_OFF */
- #include <dos.h>
- #include <stdio.h>
- int main(void)
- {
- char *str = "fpoff.c";
- printf("The offset of this file in memory
- is: %Fpn", FP_OFF(str));
- return 0;
- }
- 函数名: FP_SEG
- 功 能: 获取远地址段值
- 用 法: unsigned FP_SEG(void far *farptr);
- 程序例:
- /* FP_SEG */
- #include <dos.h>
- #include <stdio.h>
- int main(void)
- {
- char *filename = "fpseg.c";
- printf("The offset of this file in memory
- is: %Fpn", FP_SEG(filename));
- return(0);
- }
- 函数名: fputc
- 功 能: 送一个字符到一个流中
- 用 法: int fputc(int ch, FILE *stream);
- 程序例:
- #include <stdio.h>
- int main(void)
- {
- char msg[] = "Hello world";
- int i = 0;
- while (msg[i])
- {
- fputc(msg[i], stdout);
- i++;
- }
- return 0;
- }
- 函数名: fputchar
- 功 能: 送一个字符到标准输出流(stdout)中
- 用 法: int fputchar(char ch);
- 程序例:
- #include <stdio.h>
- int main(void)
- {
- char msg[] = "This is a test";
- int i = 0;
- while (msg[i])
- {
- fputchar(msg[i]);
- i++;
- }
- return 0;
- }
- 函数名: fputs
- 功 能: 送一个字符到一个流中
- 用 法: int fputs(char *string, FILE *stream);
- 程序例:
- #include <stdio.h>
- int main(void)
- {
- /* write a string to standard output */
- fputs("Hello worldn", stdout);
- return 0;
- }
- 函数名: fread
- 功 能: 从一个流中读数据
- 用 法: int fread(void *ptr, int size, int nitems, FILE *stream);
- 程序例:
- #include <string.h>
- #include <stdio.h>
- int main(void)
- {
- FILE *stream;
- char msg[] = "this is a test";
- char buf[20];
- if ((stream = fopen("DUMMY.FIL", "w+"))
- == NULL)
- {
- fprintf(stderr,
- "Cannot open output file.n");
- return 1;
- }
- /* write some data to the file */
- fwrite(msg, strlen(msg)+1, 1, stream);
- /* seek to the beginning of the file */
- fseek(stream, SEEK_SET, 0);
- /* read the data and display it */
- fread(buf, strlen(msg)+1, 1, stream);
- printf("%sn", buf);
- fclose(stream);
- return 0;
- }
- 函数名: free
- 功 能: 释放已分配的块
- 用 法: void free(void *ptr);
- 程序例:
- #include <string.h>
- #include <stdio.h>
- #include <alloc.h>
- int main(void)
- {
- char *str;
- /* allocate memory for string */
- str = malloc(10);
- /* copy "Hello" to string */
- strcpy(str, "Hello");
- /* display string */
- printf("String is %sn", str);
- /* free memory */
- free(str);
- return 0;
- }
- 函数名: freemem
- 功 能: 释放先前分配的DOS内存块
- 用 法: int freemem(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 < 0)
- printf("Allocated memory at segment:
- %xn", segp);
- else
- printf("Failed: maximum number of
- paragraphs available is %un",
- stat);
- freemem(segp);
- return 0;
- }
- 函数名: freopen
- 功 能: 替换一个流
- 用 法: FILE *freopen(char *filename, char *type, FILE *stream);
- 程序例:
- #include <stdio.h>
- int main(void)
- {
- /* redirect standard output to a file */
- if (freopen("OUTPUT.FIL", "w", stdout)
- == NULL)
- fprintf(stderr, "error redirecting
- stdoutn");
- /* this output will go to a file */
- printf("This will go into a file.");
- /* close the standard output stream */
- fclose(stdout);
- return 0;
- }
- 函数名: frexp
- 功 能: 把一个双精度数分解为尾数的指数
- 用 法: double frexp(double value, int *eptr);
- 程序例:
- #include <math.h>
- #include <stdio.h>
- int main(void)
- {
- double mantissa, number;
- int exponent;
- number = 8.0;
- mantissa = frexp(number, &exponent);
- printf("The number %lf is ", number);
- printf("%lf times two to the ", mantissa);
- printf("power of %dn", exponent);
- return 0;
- }
- 函数名: fscanf
- 功 能: 从一个流中执行格式化输入
- 用 法: int fscanf(FILE *stream, char *format[,argument...]);
- 程序例:
- #include <stdlib.h>
- #include <stdio.h>
- int main(void)
- {
- int i;
- printf("Input an integer: ");
- /* read an integer from the
- standard input stream */
- if (fscanf(stdin, "%d", &i))
- printf("The integer read was: %in",
- i);
- else
- {
- fprintf(stderr, "Error reading an
- integer from stdin.n");
- exit(1);
- }
- return 0;
- }
- 函数名: fseek
- 功 能: 重定位流上的文件指针
- 用 法: int fseek(FILE *stream, long offset, int fromwhere);
- 程序例:
- #include <stdio.h>
- long filesize(FILE *stream);
- int main(void)
- {
- FILE *stream;
- stream = fopen("MYFILE.TXT", "w+");
- fprintf(stream, "This is a test");
- printf("Filesize of MYFILE.TXT is %ld bytesn", filesize(stream));
- fclose(stream);
- return 0;
- }
- long filesize(FILE *stream)
- {
- long curpos, length;
- curpos = ftell(stream);
- fseek(stream, 0L, SEEK_END);
- length = ftell(stream);
- fseek(stream, curpos, SEEK_SET);
- return length;
- }
- 函数名: fsetpos
- 功 能: 定位流上的文件指针
- 用 法: int fsetpos(FILE *stream, const fpos_t *pos);
- 程序例:
- #include <stdlib.h>
- #include <stdio.h>
- void showpos(FILE *stream);
- int main(void)
- {
- FILE *stream;
- fpos_t filepos;
- /* open a file for update */
- stream = fopen("DUMMY.FIL", "w+");
- /* save the file pointer position */
- fgetpos(stream, &filepos);
- /* write some data to the file */
- fprintf(stream, "This is a test");
- /* show the current file position */
- showpos(stream);
- /* set a new file position, display it */
- if (fsetpos(stream, &filepos) == 0)
- showpos(stream);
- else
- {
- fprintf(stderr, "Error setting file
- pointer.n");
- exit(1);
- }
- /* close the file */
- fclose(stream);
- return 0;
- }
- void showpos(FILE *stream)
- {
- fpos_t pos;
- /* display the current file pointer
- position of a stream */
- fgetpos(stream, &pos);
- printf("File position: %ldn", pos);
- }
- 函数名: fstat
- 功 能: 获取打开文件信息
- 用 法: int fstat(char *handle, struct stat *buff);
- 程序例:
- #include <sysstat.h>
- #include <stdio.h>
- #include <time.h>
- int main(void)
- {
- struct stat statbuf;
- FILE *stream;
- /* open a file for update */
- if ((stream = fopen("DUMMY.FIL", "w+"))
- == NULL)
- {
- fprintf(stderr, "Cannot open output
- file.n");
- return(1);
- }
- fprintf(stream, "This is a test");
- fflush(stream);
- /* get information about the file */
- fstat(fileno(stream), &statbuf);
- fclose(stream);
- /* display the information returned */
- if (statbuf.st_mode & S_IFCHR)
- printf("Handle refers to a device.n");
- if (statbuf.st_mode & S_IFREG)
- printf("Handle refers to an ordinary
- file.n");
- if (statbuf.st_mode & S_IREAD)
- printf("User has read permission on
- file.n");
- if (statbuf.st_mode & S_IWRITE)
- printf("User has write permission on
- file.n");
- printf("Drive letter of file: %cn",
- 'A'+statbuf.st_dev);
- printf("Size of file in bytes: %ldn",
- statbuf.st_size);
- printf("Time file last opened: %sn",
- ctime(&statbuf.st_ctime));
- return 0;
- }
- 函数名: ftell
- 功 能: 返回当前文件指针
- 用 法: long ftell(FILE *stream);
- 程序例:
- #include <stdio.h>
- int main(void)
- {
- FILE *stream;
- stream = fopen("MYFILE.TXT", "w+");
- fprintf(stream, "This is a test");
- printf("The file pointer is at byte
- %ldn", ftell(stream));
- fclose(stream);
- return 0;
- }
- 函数名: fwrite
- 功 能: 写内容到流中
- 用 法: int fwrite(void *ptr, int size, int nitems, FILE *stream);
- 程序例:
- #include <stdio.h>
- struct mystruct
- {
- int i;
- char ch;
- };
- int main(void)
- {
- FILE *stream;
- struct mystruct s;
- if ((stream = fopen("TEST.$$$", "wb")) == NULL) /* open file TEST.$$$ */
- {
- fprintf(stderr, "Cannot open output file.n");
- return 1;
- }
- s.i = 0;
- s.ch = 'A';
- fwrite(&s, sizeof(s), 1, stream); /* write struct s to file */
- fclose(stream); /* close file */
- return 0;
- }