总览 
函数声明 
函数功能 
 
 
char ecvt(double value, int ndigit, int *decpt, int *sign); 
把一个双精度浮点型数转换为字符串,转换结果中不包括十进制小数点 
 
void ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius); 
画一段椭圆线 
 
int eof(int *handle); 
检测文件结束 
 
int execl(const char *pathname, const char *arg0, ... const char *argn, NULL); 
载入并运行其它程序 
 
int execlp(char *pathname, char *arg0, ... const char *argn, NULL); 
载入并运行其它程序 
 
int execlpe(const char *pathname, const char *arg0, ... const char *argn, NULL, const char *const *envp); 
载入并运行其它程序 
 
int execv(const char *pathname, char *const *argv); 
载入并运行其它程序 
 
int execve(const char *pathname, char *const argv[], char *const envp[]); 
载入并运行其它程序 
 
int execvp(const char *pathname, char *const argv[]); 
载入并运行其它程序 
 
int execvpe(const char *pathname, char *const argv[], char *const envp[]); 
载入并运行其它程序 
 
void exit(int status); 
终止程序 
 
double exp(double x); 
计算 x 的基数e指数(double) 
 
float expf(float x); 
计算 x 的基数e指数(float) 
 
long double expl(long double x); 
计算 x 的基数e指数(long double) 
 
double exp2(double x); 
计算 x 的基数为2的指数(double) 
 
float exp2f(float x); 
计算 x 的基数为2的指数(float) 
 
long double exp2l(long double x); 
计算 x 的基数为2的指数(long double) 
 
double expm1 (double x); 
计算 e 的 x 次方 减 1,即 (e^x) - 1  (double) 
 
float expm1f (float x); 
计算 e 的 x 次方 减 1,即 (e^x) - 1 (float) 
 
long double expm1l (long double x); 
计算 e 的 x 次方 减 1,即 (e^x) - 1  (long double) 
 
double erf (double x); 
计算 x 的 误差函数 (double) 
 
float erff (float x); 
计算 x 的 误差函数 (float) 
 
long double erfl (long double x); 
计算 x 的 误差函数 (long double) 
 
double erfc (double x); 
计算 x 的互补误差函数(double) 
 
float erfcf (float x); 
计算 x 的互补误差函数(float) 
 
long double erfcl (long double x); 
计算 x 的互补误差函数(long double) 
 
1. ecvt 1.1 函数说明 
函数声明 
函数功能 
 
 
char ecvt(double value, int ndigit, int *decpt, int *sign); 
把一个双精度浮点型数转换为字符串,转换结果中不包括十进制小数点 
 
value  : 待转换的双精度浮点数。 
ndigit  :存储的有效数字位数。这个函数存储最多 ndigit  个数字值作为一个字符串,并添加一个结束符(‘\0’ ),如果 value  中的数字个数超过 ndigit ,低位数字被舍入。如果少于 ndigit  个数字,该字符串用 0 填充。 
decpt  :指出给出小数点位置的整数值, 它是从该字符串的开头位置计算的。0  或负数指出小数点在第一个数字的左边。 
sign    :指出一个指出转换的数的符号的整数。如果该整数为 0 ,这个数为正数,否则为负数。 
 
1.2 演示示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include  <stdlib.h>  #include  <stdio.h>  #include  <conio.h>  int  main () {     char  *string ;     double  value;     int  decpt, sign;     int  ndigit = 10 ;     value = 9.876 ;     string  = ecvt(value, ndigit, &decpt, &sign);     printf ("string = %-16s decpt = %d sign = %d value = %lf\n" , string , decpt, sign, value);     value = -123.45 ;     ndigit= 15 ;     string  = ecvt(value, ndigit, &decpt, &sign);     printf ("string = %-16s decpt = %d sign = %d value = %lf\n" , string , decpt, sign, value);     value = 0.6789e5 ;      ndigit = 5 ;     string  = ecvt(value, ndigit, &decpt, &sign);     printf ("string = %-16s decpt = %d sign = %d value = %lf\n" , string , decpt, sign, value);     return  0 ; } 
 
1.3 运行结果 
2. ellipse 2.1 函数说明 
函数声明 
函数功能 
 
 
void ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius); 
画一段椭圆线 
 
以 (x, y)  为中心,xradius 、yradius  为 x 轴  和 y 轴  半径,从角 stangle  开始,endangle  结束,画一段椭圆线。当stangle=0,endangle=360  时,画出一个完整的椭圆
2.2 演示示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include  <graphics.h>  #include  <stdlib.h>  #include  <stdio.h>  int  main (void ) {          int  gdriver = DETECT, gmode, errorcode;     int  midx, midy;     int  stangle = 0 , endangle = 360 , midangle = 180 ;     int  xradius = 100 , yradius = 50 ;          initgraph(&gdriver, &gmode, "" );          errorcode = graphresult();     if  (errorcode != grOk)      {         printf ("Graphics error: %s\n" , grapherrormsg(errorcode));         printf ("Press any key to halt:" );         getch();         exit (1 );     }     midx = getmaxx() / 2 ;     midy = getmaxy() / 2 ;     setcolor(getmaxcolor());          ellipse(midx, 50 , midangle, endangle, xradius, yradius);     ellipse(midx, midy, stangle, endangle, xradius, yradius);     ellipse(midx, getmaxy() - 50 , stangle, midangle, xradius, yradius);     getch();     closegraph();     return  0 ; } 
 
2.3 运行结果 
3. eof 3.1 函数说明 
函数声明 
函数功能 
 
 
int eof(int *handle); 
检测文件结束 
 
3.2 演示示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #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;          handle = open("STU.FIL" , O_CREAT | O_RDWR, S_IREAD | S_IWRITE);          write(handle, msg, strlen (msg));          lseek(handle, 0L , SEEK_SET);          do      {         read(handle, &ch, 1 );         printf ("%c" , ch);     } while  (!eof(handle));     close(handle);     return  0 ; } 
 
3.3 运行结果 
4. execl 4.1 函数说明 
函数声明 
函数功能 
 
 
int execl(const char *pathname, const char *arg0, ... const char *argn, NULL); 
载入并运行其它程序 
 
注意:  execl  函数,其后缀 l 代表 list ,也就是参数列表的意思。第一个参数 path  字符指针指向要执行的文件路径, 接下来的参数代表执行该文件时传递的参数列表:argv[0],argv[1]... ,最后一个参数须用空指针 NULL  作结束。
4.2 演示示例 4.2.1 SubTest.c 1 2 3 4 5 6 #include  <stdio.h>  int  main (int  argc, char  *argv[]) {   printf ("exec %s, Hello, %s" , argv[0 ], argv[1 ]);   return  0 ; }  
 
4.2.2 Test.c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #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<argc; i++)         printf ("[%d] : %s\n" , i, argv[i]);     printf ("exec SubTest with subargv ...\n" );               int  result = execl("SubTest.exe" , argv[0 ], "Huazie"  , NULL );          printf ("result = %d\n" , result);     perror("exec error" );     exit (1 ); } 
 
4.3 运行结果 执行失败: 执行成功:
5. execle 5.1 函数说明 
函数声明 
函数功能 
 
 
int execle(const char *pathname, const char *arg0, ... const char *argn, NULL, const char *const *envp); 
载入并运行其它程序 
 
注意:  execl  函数是用来执行参数 path  字符串所代表的文件路径。接下来的参数代表执行该文件时传递过去的 argv[0], argv[1]…,并且倒数第二个参数必须用空指针 NULL  作结束,最后一个参数为 环境变量 。
5.2 演示示例 5.2.1 SubEnvTest.c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include  <process.h>  #include  <processenv.h>  #include  <stdio.h>  int  main (int  argc, char  *argv[], char  **envp) {     printf ("SubEnvTest Command line arguments:\n" );     for  (int  i=0 ; i<argc; i++)         printf ("[%d] : %s\n" , i, argv[i]);     printf ("exec %s, Hello, %s\n" , argv[0 ], argv[1 ]);     for  (int  i = 0 ; envp[i] != NULL ; i++)     {         printf ("%s\n" , envp[i]);     }               return  0 ; }  
 
5.2.2 Test.c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #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<argc; i++)         printf ("[%d] : %s\n" , i, argv[i]);     printf ("exec SubEnvTest with subargv ...\n" );     const  char  *envp[] = {"AUTHOR=Huazie" , "DATE=2023-03-28" , NULL };                     int  result = execle("SubEnvTest.exe" , argv[0 ], "Huazie"  , NULL , envp);          printf ("result = %d\n" , result);     perror("exec error" );     exit (1 ); } 
 
5.3 运行结果 
6. execlp 6.1 函数说明 
函数声明 
函数功能 
 
 
int execlp(char *pathname, char *arg0, ... const char *argn, NULL); 
载入并运行其它程序 
 
注意:  execlp  函数会从 PATH  环境变量所指的目录中查找符合参数 pathname  的文件名,找到后便执行该文件,然后将第二个以后的参数当做该文件的arg0, arg1, …,最后一个参数必须用 空指针 NULL  作结束。
6.2 演示示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #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<argc; i++)         printf ("[%d] : %s\n" , i, argv[i]);     printf ("exec java with subargv ...\n" );          int  result = execlp("java.exe" , "java" , "-version" , NULL );          printf ("result = %d\n" , result);     perror("exec error" );     exit (1 ); } 
 
6.3 运行结果 
7. execlpe 7.1 函数说明 
函数声明 
函数功能 
 
 
int execlpe(const char *pathname, const char *arg0, ... const char *argn, NULL, const char *const *envp); 
载入并运行其它程序 
 
注意:  execlp  函数会从 PATH  环境变量所指的目录中查找符合参数 pathname  的文件名,找到后便执行该文件,然后将第二个以后的参数当做该文件的arg0, arg1, …,其中倒数第二个参数必须用 空指针 NULL  作结束,最后一个参数为 环境变量 。
7.2 演示示例 7.2.1 SubEnvTest.c 参考 5.2.1  的 SubEnvTest.c 
7.2.2 Test.c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #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<argc; i++)         printf ("[%d] : %s\n" , i, argv[i]);     printf ("exec SubEnvTest with subargv ...\n" );     const  char  *envp[] = {"AUTHOR=Huazie" , "DATE=2023-03-28" , NULL };           int  result = execlpe("SubEnvTest" , argv[0 ], "Huazie" , NULL , envp);          printf ("result = %d\n" , result);     perror("exec error" );     exit (1 ); } 
 
7.3 运行结果 
8. execv 8.1 函数说明 
函数声明 
函数功能 
 
 
int execv(const char *pathname, char *const *argv); 
载入并运行其它程序 
 
注意:execv  函数用来运行參数 pathname  字符串所指向的程序,第二个参数 argv  为參数列表【该数组的最后一个元素必须是空指针 NULL 】。
8.2 演示示例 8.2.1 SubTest.c 参考 4.2.1  的 SubTest.c 
8.2.2 Test.c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #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<argc; i++)         printf ("[%d] : %s\n" , i, argv[i]);     printf ("exec SubTest with subargv ...\n" );     char  *const  subargv[]  = {argv[0 ], "Huazie"  , NULL };                int  result = execv("SubTest.exe" , subargv);          printf ("result = %d\n" , result);     perror("exec error" );     exit (1 ); } 
 
8.3 运行结果 
9. execve 9.1 函数说明 
函数声明 
函数功能 
 
 
int execve(const char *pathname, char *const argv[], char *const envp[]); 
载入并运行其它程序 
 
注意:execve  函数用来运行參数 pathname  字符串所指向的程序,第二个参数 argv  为參数列表【该数组的最后一个元素必须是空指针 NULL 】,最后一个参数为 环境变量 。
9.2 演示示例 9.2.1 SubEnvTest.c 参考 5.2.1  的 SubEnvTest.c 
9.2.2 Test.c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #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<argc; i++)         printf ("[%d] : %s\n" , i, argv[i]);     printf ("exec SubEnvTest with subargv ...\n" );     char  *const  subargv[]  = {argv[0 ], "Huazie"  , NULL };      char  *const  envp[] = {"AUTHOR=Huazie" , "DATE=2023-03-28" , NULL };                int  result = execve("SubEnvTest.exe" , subargv, envp);          printf ("result = %d\n" , result);     perror("exec error" );     exit (1 ); } 
 
9.3 运行结果 
10. execvp 10.1 函数说明 
函数声明 
函数功能 
 
 
int execvp(const char *pathname, char *const argv[]); 
载入并运行其它程序 
 
注意:execvp  函会从 PATH  环境变量所指的目录中查找符合参数 pathname  的文件名,找到后便执行该文件,第二个参数 argv  为參数列表【该数组的最后一个元素必须是空指针 NULL 】。
10.2 演示示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #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<argc; i++)         printf ("[%d] : %s\n" , i, argv[i]);     printf ("exec java with subargv ...\n" );     char  *const  subargv[]  = {"java" , "-version"  , NULL };           int  result = execvp("java.exe" , subargv);          printf ("result = %d\n" , result);     perror("exec error" );     exit (1 ); } 
 
10.3 运行结果 
11. execvpe 11.1 函数说明 
函数声明 
函数功能 
 
 
int execvpe(const char *pathname, char *const argv[], char *const envp[]); 
载入并运行其它程序 
 
注意:execvpe  函会从 PATH  环境变量所指的目录中查找符合参数 pathname  的文件名,找到后便执行该文件,第二个参数 argv  为參数列表【该数组的最后一个元素必须是空指针 NULL 】,最后一个参数为 环境变量 。
11.2 演示示例 11.2.1 SubEnvTest.c 参考 5.2.1  的 SubEnvTest.c 
11.2.2 Test.c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #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<argc; i++)         printf ("[%d] : %s\n" , i, argv[i]);     printf ("exec SubEnvTest with subargv ...\n" );     char  *const  subargv[]  = {argv[0 ], "Huazie"  , NULL };      char  *const  envp[] = {"AUTHOR=Huazie" , "DATE=2023-03-28" , NULL };           int  result = execvpe("SubEnvTest.exe" , subargv, envp);          printf ("result = %d\n" , result);     perror("exec error" );     exit (1 ); } 
 
11.3 运行结果 
12. exit 12.1 函数说明 
函数声明 
函数功能 
 
 
void exit(int status); 
终止程序 
 
注意: exit  函数通常是用来终结程序用的,使用后程序自动结束,跳回操作系统。exit(0) 表示程序正常退出【相当于主函数 return 0;】,exit⑴ 表示程序异常退出【相当于主函数 return 1;】。
12.2 演示示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include  <stdlib.h>  #include  <stdio.h>  int  main (void ) {     int  status;     printf ("Enter either 1 or 2\n" );     status = getchar();          exit (status - '0' );          printf ("this line is never reached!" );     return  0 ; } 
 
12.3 运行结果 
13. exp,expf,expl 13.1 函数说明 
函数声明 
函数功能 
 
 
double exp(double x); 
计算 x 的基数e指数(double) 
 
float expf(float x); 
计算 x 的基数e指数(float) 
 
long double expl(long double x); 
计算 x 的基数e指数(long double) 
 
13.2 演示示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include  <stdio.h>  #include  <math.h>  int  main (void ) {     double  result, x = 4.0 ;     result = exp (x);     float  resultf, xf = 4.0 ;     resultf = expf(xf);     long  double  resultL, xL = 4.0 ;     resultL = expl(xL);     printf ("\n'e' raised to the power of %lf (e ^ %lf) = %.20lf\n" , x, x, result);     printf ("\n'e' raised to the power of %f (e ^ %f) = %.20f\n" , xf, xf, resultf);     printf ("\n'e' raised to the power of %Lf (e ^ %Lf) = %.20Lf\n" , xL, xL, resultL);     return  0 ; } 
 
13.3 运行结果 
14. exp2,exp2f,exp2l 14.1 函数说明 
函数声明 
函数功能 
 
 
double exp2(double x); 
计算 x 的基数为2的指数(double) 
 
float exp2f(float x); 
计算 x 的基数为2的指数(float) 
 
long double exp2l(long double x); 
计算 x 的基数为2的指数(long double) 
 
14.2 演示示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include  <stdio.h>  #include  <math.h>  int  main (void ) {     double  result, x = 4.5 ;     result = exp2(x);     float  resultf, xf = 4.5 ;     resultf = exp2f(xf);     long  double  resultL, xL = 4.5 ;     resultL = exp2l(xL);     printf ("\n'2' raised to the power of %lf (2 ^ %lf) = %.20lf\n" , x, x, result);     printf ("\n'2' raised to the power of %f (2 ^ %f) = %.20f\n" , xf, xf, resultf);     printf ("\n'2' raised to the power of %Lf (2 ^ %Lf) = %.20Lf\n" , xL, xL, resultL);     return  0 ; } 
 
14.3 运行结果 
15. expm1,expm1f,expm1l 15.1 函数说明 
函数声明 
函数功能 
 
 
double expm1 (double x); 
计算 e 的 x 次方 减 1,即 (e^x) - 1  (double) 
 
float expm1f (float x); 
计算 e 的 x 次方 减 1,即 (e^x) - 1 (float) 
 
long double expm1l (long double x); 
计算 e 的 x 次方 减 1,即 (e^x) - 1  (long double) 
 
15.2 演示示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include  <stdio.h>  #include  <math.h>  int  main (void ) {     double  result, result1, x = 4.0 ;     result = exp (x);     result1 = expm1(x);     float  resultf, resultf1, xf = 4.0 ;     resultf = expf(xf);     resultf1 = expm1f(xf);     long  double  resultL, resultL1, xL = 4.0 ;     resultL = expl(xL);     resultL1 = expm1l(xL);     printf ("\n'e' raised to the power of %lf (e ^ %lf) = %.20lf\n" , x, x, result);     printf ("\n'e' raised to the power of %lf minus one (e ^ %lf - 1) = %.20lf\n" , x, x, result1);     printf ("\n'e' raised to the power of %f (e ^ %f) = %.20f\n" , xf, xf, resultf);     printf ("\n'e' raised to the power of %f minus one (e ^ %f - 1) = %.20f\n" , xf, xf, resultf1);     printf ("\n'e' raised to the power of %Lf (e ^ %Lf) = %.20Lf\n" , xL, xL, resultL);     printf ("\n'e' raised to the power of %Lf minus one (e ^ %Lf - 1) = %.20Lf\n" , xL, xL, resultL1);     return  0 ; } 
 
15.3 运行结果 
16. erf,erff,erfl 16.1 函数说明 
函数声明 
函数功能 
 
 
double erf (double x); 
计算 x 的 误差函数 (double) 
 
float erff (float x); 
计算 x 的 误差函数 (float) 
 
long double erfl (long double x); 
计算 x 的 误差函数 (long double) 
 
16.2 演示示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include  <stdio.h>  #include  <math.h>  int  main (void ) {     double  result, x = 2.0 ;     result = erf(x);      float  resultf, xf = 2.0 ;     resultf = erff(xf);     long  double  resultL, xL = 2.0 ;     resultL = erfl(xL);     printf ("the error function of %lf = %.20lf\n" , x, result);     printf ("the error function of %f = %.20f\n" , xf, resultf);     printf ("the error function of %Lf = %.20Lf\n" , xL, resultL);              return  0 ; } 
 
16.3 运行结果 
17. erfc,erfcf,erfcl 17.1 函数说明 
函数声明 
函数功能 
 
 
double erfc (double x); 
计算 x 的互补误差函数(double) 
 
float erfcf (float x); 
计算 x 的互补误差函数(float) 
 
long double erfcl (long double x); 
计算 x 的互补误差函数(long double) 
 
17.2 演示示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include  <stdio.h>  #include  <math.h>  int  main (void ) {     double  result, x = 2.0 ;     result = erfc(x);      float  resultf, xf = 2.0 ;     resultf = erfcf(xf);     long  double  resultL, xL = 2.0 ;     resultL = erfcl(xL);     printf ("the complementary error function of %lf = %.20lf\n" , x, result);     printf ("the complementary error function of %f = %.20f\n" , xf, resultf);     printf ("the complementary error function of %Lf = %.20Lf\n" , xL, resultL);              return  0 ; } 
 
17.3 运行结果 
参考 
[API Reference Document]  
[ecvt 函数]  
[exec函数]