浅谈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下的一些常用函数的总结(必看篇)全部内容了,希望大家多多支持脚本之家~

相关文章

  • Linux常见基本命令与用法大全

    Linux常见基本命令与用法大全

    这篇文章主要介绍了Linux常见基本命令与用法,总结分析了Linux各种常见的操作命令,包括文件、用户、系统等常见操作命令与使用技巧,需要的朋友可以参考下
    2019-12-12
  • Linux系统之基础扫盲教程大全

    Linux系统之基础扫盲教程大全

    本篇文章主要介绍了Linux系统之基础扫盲大全,介绍了网络,系统,cpu,内存,硬盘,进程等等常用的基础信息查看与基础功能设置,有兴趣的可以了解一下。
    2017-04-04
  • linux tomcat配置https的方法

    linux tomcat配置https的方法

    这篇文章主要介绍了linux tomcat配置https的方法,需要的朋友可以参考下
    2017-08-08
  • Linux上启动和停止jar的方法示例

    Linux上启动和停止jar的方法示例

    在Linux系统中,要想让jar包在后台运行,可以使用nohup命令和&符号,nohup命令可以使进程在后台不受挂起信号影响的执行,而&符号则是将任务放入后台执行,本文介绍了Linux上启动和停止jar的方法示例,需要的朋友可以参考下
    2024-07-07
  • Nginx启动SSL功能,并进行功能优化详细介绍

    Nginx启动SSL功能,并进行功能优化详细介绍

    这篇文章主要介绍了Nginx启动SSL功能,并进行功能优化详细介绍的相关资料,需要的朋友可以参考下
    2016-12-12
  • 让Apache支持Rewrite静态页面重写的方法

    让Apache支持Rewrite静态页面重写的方法

    Apache下Rewrite静态页面重写的方法,需要的朋友可以参考下。
    2010-07-07
  • Linux使用cd命令之实现切换目录的完全指南

    Linux使用cd命令之实现切换目录的完全指南

    这篇文章主要介绍了Linux使用cd命令之实现切换目录的完全指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Linux曝出Sudo提权漏洞 任意用户亦可运行root命令

    Linux曝出Sudo提权漏洞 任意用户亦可运行root命令

    近期曝出的一个提权漏洞,却直指 sudo 的一个安全策略隐患 —— 即便配置中明确不允许 root 用户访问,该漏洞仍可允许恶意用户或程序,在目标 Linux 系统上以 root 用户身份执行任意命令
    2019-10-10
  • linux DMA接口知识点详解

    linux DMA接口知识点详解

    在本篇文章里小编给大家整理了关于linux DMA接口知识点内容,需要的朋友们可以学习参考下。
    2020-02-02
  • 详解怎样在Linux中配置静态网络连接

    详解怎样在Linux中配置静态网络连接

    这篇文章主要介绍了详解怎样在Linux中配置静态网络连接,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05

最新评论