浅谈linux下的一些常用函数的总结(必看篇)

 更新时间:2016年10月21日 10:44:24   投稿:jingxian  
下面小编就为大家带来一篇浅谈linux下的一些常用函数的总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

1.exit()函数

exit(int n)  其实就是直接退出程序,

因为默认的标准程序入口为int main(int argc, char** argv),返回值是int型的。

一般在shell下面,运行一个程序,然后使用命令echo $?就能得到该程序的返回值,也就是退出值,在main()里面,你可以用return n,也能够直接用exit(n)来做。unix默认的习惯正确退出是返回0,错误返回非0。

重点:单独的进程是返回给操作系统的。如果是多进程,是返回给父进程的。

在父进程里面调用waitpid()等函数得到子进程退出的状态,以便作不同处理

返回值不能超过255.

在stdlib.h里面有定义

#define    EXIT_SUCCESS    0 
#define    EXIT_FAILURE    1 

C程序的终止分为两种: 正常终止和异常终止.

正常终止分为: return, exit, _exit, _Exit, pthreade_exit

异常中指分为: abort, SIGNAL, 线程响应取消

主要说一下正常终止的前4种, 即exit系列函数.

#include <stdlib.h>
void exit(int status);
void _Exit(int status);
#include <unistd.h>
void _exit(int status);

以上3个函数的区别是:

exit()(或return 0)会调用终止处理程序和用户空间的标准I/O清理程序(如fclose), _exit和_Exit不调用而直接由内核接管进行清理.

#include<stdlib.h>
int atexit(void (*function)(void))

返回值:成功返回0,失败返回非零数.

ISO C规定, 一个进程最对可登记32个终止处理函数, 这些函数由exit按登记相反的顺序自动调用. 如果同一函数登记多次, 也会被调用多次.

#include<stdlib.h>
#include<unistd.h>
static void my_exit1()
{
printf("first exit handlern\n");
}

static void my_exit2()
{
 printf("second exit handlern\n");
}

int main()
{
 if (atexit(my_exit2) != 0)
printf("can't register my_exit2n\n");
 if (atexit(my_exit1) != 0)
printf("can't register my_exit1n\n");
 if (atexit(my_exit1) != 0)
printf("can't register my_exit1n\n");

 printf("main is donen\n");
 return 0;
}
addia@addia-Lenovo-B470:~$ ./test
main is donen
first exit handlern
first exit handlern
second exit handlern

以上就是小编为大家带来的浅谈linux下的一些常用函数的总结(必看篇)全部内容了,希望大家多多支持脚本之家~

相关文章

  • CentOS Apache配置详解 文字说明

    CentOS Apache配置详解 文字说明

    要想在linux上实现网页服务器(www)需要Apache这个服务器软件,不过Apache仅能提供最基本的静态网站数据而已,想要实现动态网站的话,最好还是要PHP与MySQL的支持,所以下面我们将会以LAMP(linux+Apache+MySQL+PHP)作为安装与设置的介绍。
    2011-03-03
  • 使用Linux要改掉几个的命令习惯

    使用Linux要改掉几个的命令习惯

    现在越来越多的人用linux系统,本文分享的这些习惯也许会令你事半功倍,找到其中的乐趣。刚开始使用Linux时你也许会感到不习惯,许多高手也都有这样的经历。毕竟,曾经他们也都是新手。好的习惯可以提高工作效率以及命令的运行效率,下面来一起看看吧。
    2016-11-11
  • Linux ifconfig 命令的使用

    Linux ifconfig 命令的使用

    这篇文章主要介绍了Linux ifconfig 命令的使用,帮助大家更好的理解和使用Linux系统,感兴趣的朋友可以了解下
    2020-08-08
  • Linux使用 iftop 实时监控网卡的流量

    Linux使用 iftop 实时监控网卡的流量

    iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。这篇文章主要介绍了Linux 实时网卡流量监控,需要的朋友可以参考下
    2019-11-11
  • Linux查看文件大小的几种方法汇总

    Linux查看文件大小的几种方法汇总

    这篇文章主要介绍了Linux查看文件大小的几种方法汇总,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • apache的源码安装详细过程全纪录

    apache的源码安装详细过程全纪录

    这篇文章主要介绍了apache的源码安装详细过程全纪录,需要的朋友可以参考下
    2015-01-01
  • CentOS7.4下MySQL5.7.28二进制方式安装的方法步骤

    CentOS7.4下MySQL5.7.28二进制方式安装的方法步骤

    这篇文章主要介绍了CentOS7.4下MySQL5.7.28二进制方式安装的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 详解bash中的脚本调试机制

    详解bash中的脚本调试机制

    这篇文章主要介绍了bash中的脚本调试机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 关于安装linux redhat后无法使用yum命令安装gcc-c++问题的解决过程

    关于安装linux redhat后无法使用yum命令安装gcc-c++问题的解决过程

    这篇文章主要介绍了关于安装linux redhat后无法使用yum命令安装gcc-c++问题的解决过程,需要的朋友可以参考下
    2017-08-08
  • Linxu下性能指标采集工具之nmon工具的使用

    Linxu下性能指标采集工具之nmon工具的使用

    Linux下查看CPU信息一般采用top命令来实时观察,但是这种对于只是通过观察数据的变化来评估cpu的实时情况显然不太科学。如果想要通过图标的形式来表现则需要借助一些外部工具,今天就来讲解一下nmon工具的使用
    2023-04-04

最新评论