⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c函数大全.txt

📁 关于c中的一些函数用法的说明
💻 TXT
📖 第 1 页 / 共 5 页
字号:
} 

void flush(FILE *stream) 
{ 
int duphandle; 

/* flush TC'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; 
} 


函数大全(e开头)



函数名: 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 - '0'); 

/* 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("'e' raised to the power \ 
of %lf (e ^ %lf) = %lf\n", 
x, x, result); 

return 0; 
}


函数大全(e开头)



函数名: 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 - '0'); 

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



函数名: exp 
功 能: 指数函数 
用 法: doubl函数大全(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+,添加打开,文件不存在时创建,在末尾更新。成功时返回新打开的流。出错时返回NULL。

 



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -