?? c語言函數大全.txt
字號:
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 <stdio.h>
#include <dos.h>
#include <conio.h>
/* 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 <sys\stat.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
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 <process.h>
#include <stdio.h>
#include <errno.h>
void main(int argc, char *argv[])
{
int i;
printf("Command line arguments:\n");
for (i=0; i printf("[%2d] : %s\n", i, argv);
printf("About to exec child with arg1 arg2
...\n");
execv("CHILD.EXE", argv);
perror("exec error");
exit(1);
}
函數名: exit
功 能: 終止程序
用 法: void exit(int status);
程序例:
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
int main(void)
{
int status;
printf("Enter either 1 or 2\n");
status = getch();
/* Sets DOS errorlevel */
exit(status - 0 );
/* Note: this line is never reached */
return 0;
}
函數名: exp
功 能: 指數函數
用 法: double exp(double x);
程序例:
#include <stdio.h>
#include <math.h>
int main(void)
{
double result;
double x = 4.0;
result = exp(x);
printf(" e raised to the power \
of %lf (e ^ %lf) = %lf\n",
x, x, result);
return 0;
}
函數大全(f開頭)
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+,添加打開,文件不存在時創建,在末尾更新。成功時返回新打開的流。出錯時返回NU
LL。
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個字符,或遇換行符 \n 為止,把讀出的內容,存入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_SYST
EM系統文
件;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, x );
/* 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所指的以空字符終結的字符串送入流中,不加換行符 \n ,不拷貝串結束符 \0 。
成功時返回最后的字符,出錯時返回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,出錯時返回NU
LL。
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, x );
/* 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 </font>
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, x );
/* 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相聯系的文件指針置于新的位置。這個新的位置是先前對此流調用fge
tpos所得的值。
fsetpos清除stream所指文件的文件結束標志,并消除對該文件的所有ungetc操作。在調用
fsetpos之后,文
件的下一操作可以是輸入或輸出。
調用fsetpos成功時返回0;若失敗,返回非0值。
int fstat(int handle,struct stat *statbuf);
把與handle相聯系的打開文件或目錄的信息存入到statbuf所指的定義在sys\stat.h中的s
tat結構中。成功時
返回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。
--
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -