<stdlib.h>中定义的函数(二)

目录

十一 、abort(void)

十二 、atexit(func)

十三、exit(int status)

十四、getenv(name)

十五、system(command)

十六、bsearch(key,base,nitems,size ,compar )

十七、qsort(base,nitems,size,compar )

十八、abs(int x)

十九、div(int numer, int denom)

二十、 labs(long int x)


十一 、abort(void)

1、描述:

C 库函数 void abort(void) 中止程序执行,直接从调用的地方跳出。

2、参数:

NA

3、返回值:

该函数不返回任何值。

4、实例:

代码:

#include <stdio.h>
#include <stdlib.h>

int main ()
{
   FILE *fp;
   
   printf("准备打开 nofile.txt\n");
   fp = fopen( "nofile.txt","r" );
   if(fp == NULL)
   {
      printf("准备终止程序\n");
      abort();
   }
   printf("准备关闭 nofile.txt\n");
   fclose(fp);
   
   return(0);
}

运行结果:

准备打开 nofile.txt
准备终止程序

十二 、atexit(func)

1、描述:

C 库函数 int atexit(void (*func)(void)) 当程序正常终止时,调用指定的函数 func。您可以在任何地方注册你的终止函数,但它会在程序终止的时候被调用。

2、参数:

func -- 在程序终止时被调用的函数。

3、返回值:

如果函数成功注册,则该函数返回零,否则返回一个非零值。

4、实例:

代码:

#include <stdio.h>
#include <stdlib.h>

void functionA ()
{
   printf("这是函数A\n");
}

int main ()
{
   /* 注册终止函数 */
   atexit(functionA );
   
   printf("启动主程序...\n");

   printf("退出主程序...\n");

   return(0);
}

运行结果:

启动主程序...
退出主程序...
这是函数A

十三、exit(int status)

1、描述:

C 库函数 void exit(int status) 立即终止调用进程。任何属于该进程的打开的文件描述符都会被关闭,该进程的子进程由进程 1 继承,初始化,且会向父进程发送一个 SIGCHLD 信号。

2、参数:

status -- 返回给父进程的状态值。

3、返回值:

该函数不返回值。

4、实例:

代码:

#include <stdio.h>
#include <stdlib.h>

int main ()
{
   printf("程序的开头....\n");
   
   printf("退出程序....\n");
   exit(0);

   printf("程序的结尾....\n");

   return(0);
}

 运行结果:

程序的开头....
退出程序....

十四、getenv(name)

1、描述:

C 库函数 char *getenv(const char *name) 搜索 name 所指向的环境字符串,并返回相关的值给字符串。

2、参数:

name -- 包含被请求变量名称的 C 字符串。

3、返回值:

该函数返回一个以 null 结尾的字符串,该字符串为被请求环境变量的值。如果该环境变量不存在,则返回 NULL。

4、实例:

代码:

#include <stdio.h>
#include <stdlib.h>

int main ()
{
   printf("PATH : %s\n", getenv("PATH"));
   printf("HOME : %s\n", getenv("HOME"));
   printf("ROOT : %s\n", getenv("ROOT"));

   return(0);
}

运行结果:

PATH : /sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
HOME : /
ROOT : (null)

十五、system(command)

1、描述:

C 库函数 int system(const char *command) 把 command 指定的命令名称或程序名称传给要被命令处理器执行的主机环境,并在命令完成后返回。

2、参数:

command -- 包含被请求变量名称的 C 字符串。

3、返回值:

如果发生错误,则返回值为 -1,否则返回命令的状态。

4、实例:

代码:

#include <stdio.h>
#include <string.h>

int main ()
{
   char command[50];

   strcpy( command, "dir" );
   system(command);

   return(0);
} 

运行结果:

a.txt
amit.doc
sachin
saurav
file.c

十六、bsearch(key,base,nitems,size ,compar )

1、描述:

C 库函数 void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *)) 对 nitems 对象的数组执行二分查找,base 指向进行查找的数组,key 指向要查找的元素,size 指定数组中每个元素的大小。

数组的内容应根据 compar 所对应的比较函数升序排序。

2、参数:

key -- 指向要查找的元素的指针,类型转换为 void*。

base -- 指向进行查找的数组的第一个对象的指针,类型转换为 void*。

nitems -- base 所指向的数组中元素的个数。

size -- 数组中每个元素的大小,以字节为单位。

compar -- 用来比较两个元素的函数。

3、返回值:

如果查找成功,该函数返回一个指向数组中匹配元素的指针,否则返回空指针。.

4、实例:

代码:

#include <stdio.h>
#include <stdlib.h>
 
 
int cmpfunc(const void * a, const void * b)
{
   return ( *(int*)a - *(int*)b );
}
 
int values[] = { 5, 20, 29, 32, 63 };
 
int main ()
{
   int *item;
   int key = 32;
 
   /* 使用 bsearch() 在数组中查找值 32 */
   item = (int*) bsearch (&key, values, 5, sizeof (int), cmpfunc);
   if( item != NULL ) 
   {
      printf("Found item = %d\n", *item);
   }
   else 
   {
      printf("Item = %d could not be found\n", *item);
   }
   
   return(0);
}

运行结果:

Found item = 32

十七、qsort(base,nitems,size,compar )

1、描述:

C 库函数 void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) 对数组进行排序。

2、参数:

base -- 指向要排序的数组的第一个元素的指针。

nitems -- 由 base 指向的数组中元素的个数。

size -- 数组中每个元素的大小,以字节为单位。

compar -- 用来比较两个元素的函数。

3、返回值:

该函数不返回任何值。

4、实例:

代码:

#include <stdio.h>
#include <stdlib.h>

int values[] = { 88, 56, 100, 2, 25 };

int cmpfunc (const void * a, const void * b)
{
   return ( *(int*)a - *(int*)b );
}

int main()
{
   int n;

   printf("排序之前的列表:\n");
   for( n = 0 ; n < 5; n++ ) {
      printf("%d ", values[n]);
   }

   qsort(values, 5, sizeof(int), cmpfunc);

   printf("\n排序之后的列表:\n");
   for( n = 0 ; n < 5; n++ ) {
      printf("%d ", values[n]);
   }
 
  return(0);
}

运行结果:

排序之前的列表:
88 56 100 2 25 
排序之后的列表:
2 25 56 88 100

十八、abs(int x)

1、描述:

C 库函数 int abs(int x) 返回 x 的绝对值。

2、参数:

-- 完整的值。

3、返回值:

该函数返回 x 的绝对值。

4、实例:

代码:

#include <stdio.h>
#include <stdlib.h>

int main ()
{
   int a, b;

   a = abs(5);
   printf("a 的值 = %d\n", a);

   b = abs(-10);
   printf("b 的值 = %d\n", b);
   
   return(0);
}

运行结果:

a 的值 = 5
b 的值 = 10

十九、div(int numer, int denom)

1、描述:

C 库函数 div_t div(int numer, int denom) 把 numer(分子)除以 denom(分母)

2、参数:

  • numer -- 分子。
  • denom -- 分母。

3、返回值:

该函数返回定义在 <cstdlib> 中的结构中的值,该结构有两个成员,如 div_t:int quot; int rem;

4、实例:

代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
   div_t output;

   output = div(27, 4);
   printf("(27/ 4) 的商  = %d\n", output.quot);
   printf("(27/4) 的余数 = %d\n", output.rem);

   output = div(27, 3);
   printf("(27/ 3) 的商 = %d\n", output.quot);
   printf("(27/3) 的余数 = %d\n", output.rem);

   return(0);
}

运行结果:

(27/ 4) 的商 = 6
(27/4) 的余数 = 3
(27/ 3) 的商 = 9
(27/3) 的余数 = 0

二十、 labs(long int x)

1、描述:

C 库函数 long int labs(long int x) 返回 x 的绝对值。

2、参数:

-- 完整的值。

3、返回值:

该函数返回 x 的绝对值。

4、实例:

代码:

#include <stdio.h>
#include <stdlib.h>

int main ()
{
   long int a,b;

   a = labs(65987L);
   printf("a 的值 = %ld\n", a);

   b = labs(-1005090L);
   printf("b 的值 = %ld\n", b);
   
   return(0);
}

运行结果:

a 的值 = 65987
b 的值 = 1005090

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值