首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

带着问题源码 —— exit 如何调用 atexit 处理器

前言 之前在写 apue 系列的时候,曾经对系统接口的很多行为产生过好奇,当时就想研究下对应的源码,但是苦于 linux 源码过于庞杂,千头万绪不知从何开启,就一直拖了下来。...它同时解决了源码包下载和环境搭建的问题,版本也帮你选好了,直接原地起飞进入源码查看: 下面是查找 glibc exit 的过程: 语法高亮、风格切换、跳转 (定义/引用) 等功能做的还是很全面的,代码绰绰有余...glibc exit 之前写过一篇介绍 linux 进程环境的文章(《 [apue] 进程环境那些事儿》),其中提到了 glibc exit 会主动调用 atexit 注册的处理器,且有以下特性: LIFO...,对当前结构没影响,继续遍历当前块和整个 deque 如果不相同,说明插入了新记录,当前指针已经失效,需要重新遍历,这里直接 goto restart 重新开始遍历 注意在回调前,先将处理器信息复制到栈上...handler_p,新注册的处理器是 handle_c,从上到下: 因未遍历完所有记录,__exit_funcs_done 未设置,所以仍可以注册新的处理器 第一个 for 循环扫描当前块,将刚才回调

18710
您找到你想要的搜索结果了吗?
是的
没有找到

linux源码epoll

本文就是笔者在探究epoll源码过程中,对kernel将就绪描述符添加到epoll并唤醒对应进程的一次源码分析(基于linux-2.6.32内核版本)。...源码socket的阻塞和非阻塞>>中,博客地址如下: https://my.oschina.net/alchemystar/blog/1791017) 既然知道了tfile->f_op->poll的实现...file的poll // 这边的poll即是tcp_poll,根据tcp本身的信息设置掩码(mask)等信息 & 上兴趣事件掩码,则可以得知当前事件是否是epoll_wait感兴趣的事件 revents...&ep->wq是在epoll_wait调用的时候通过init_waitqueue_entry(&wait, current)而生成的 // 其中的current即是对应调用epoll_wait的进程信息...总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐_。

2.2K20

linux源码epoll

linux源码epoll 前言 在linux的高性能网络编程中,绕不开的就是epoll。...(注:由于是tcp socket,所以这边sock->ops=inet_stream_ops,这个初始化的过程在我的另一篇博客>中,博客地址如下: https...file的poll // 这边的poll即是tcp_poll,根据tcp本身的信息设置掩码(mask)等信息 & 上兴趣事件掩码,则可以得知当前事件是否是epoll_wait感兴趣的事件 revents...&ep->wq是在epoll_wait调用的时候通过init_waitqueue_entry(&wait, current)而生成的 // 其中的current即是对应调用epoll_wait的进程信息...总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐^_^。

5.1K41

Linux本地信息收集

我们在获取到webshell之后,经常会遇到Linux的操作系统,这是我们需要对Linux系统本地的敏感资源进行信息收集,下面就是一些有用的信息获取方式。...获取内核,操作系统和设备信息 命令 作用 uname -a 打印所有可用的系统信息 uname -r 内核版本信息 uname -n 系统主机名字 hostname 主机名 uname -m Linux...last 显示登入过的用户信息 lastlog 显示系统中所有用户最近一次登录信息 lastlog –u %username% 显示指定用户最后一次登入信息 用户和权限信息 命令 作用 whoami...列出目前用户可执行与无法执行的指令 su 切换当前用户身份到其他用户身份 环境信息 命令 作用 env 打印系统环境信息 set 打印系统环境信息 echo $PATH 环境变量中的路径信息 history...which %program_name% 查找有用的软件 cat /etc/apache2/envvars 查看运行apache的帐号 总结 这些内容基本上包含了在linux上需要去了解的所有信息

2.2K00

linux查看系统信息

---- 1.uname uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等) -a或--all:显示全部的信息; -m或--machine:显示电脑类型; -n或...nodename:显示在网络上的主机名称; -r或--release:显示操作系统的发行编号; -s或--sysname:显示操作系统名称; -v:显示操作系统的版本; -p或--processor:输出处理器类型或...--hardware-platform:输出硬件平台或"unknown"; -o或--operating-system:输出操作系统名称; --help:显示帮助; --version:显示版本信息...2.lsb_release -a Linux里的lsb_release命令用来查看当前系统的发行版信息(prints certain LSB (Linux Standard Base) and Distribution...有些系统上不一定安装了这个命令,可以通过查看/etc/issue文件得到发行版信息 ----

12K50
领券