Linux
文章平均质量分 57
502203305
不积跬步,无以至千里;
不积小流,无以成江海。
展开
-
windows linux 都可执行的脚本 bat, shell 共存
bash + bat原创 2023-08-25 21:16:35 · 664 阅读 · 0 评论 -
检查一个指针是否合法,可访问
指针校验原创 2023-07-17 14:53:19 · 419 阅读 · 0 评论 -
cpp 分析全局变量局部静态变量在源码中的位置
综上可以得到大概位置;也可以基本知道变量名, 搜索代码即可;全局的可以定位到信息, 但是静态类型不行;静态类型限制比较死, 分析.o文件即可确定;因为局部生效;全局的则可能extern之类的, 而且一般只有一个定位;位置也比较固定;没有重复;原创 2023-07-14 23:56:20 · 250 阅读 · 0 评论 -
多线程问题分析
killabort。原创 2023-05-04 12:02:55 · 62 阅读 · 0 评论 -
shell能输入不显示字符
ssh原创 2023-02-23 15:43:04 · 197 阅读 · 0 评论 -
systemd 学习大纲
systemd 学习原创 2023-02-21 23:15:29 · 111 阅读 · 0 评论 -
获取文件信息: 大小, 文件类型等.
stat function call原创 2022-08-11 13:50:45 · 289 阅读 · 0 评论 -
elf 文件格式解析
elf案例解析源代码int main() { asm("movl $42, %ebx \n\t" "movl $1 , %eax \n\t" "int $0x80 \n\t");}链接代码MEMORY { CODE (R!X) : ORIGIN = 0x200300 , LENGTH = 16M}SECTIONS{ .text 0x200400 : { *(.text) } > CODE "/DISCAR..原创 2022-04-23 14:24:35 · 540 阅读 · 0 评论 -
获取线程在CPU的执行时间
总览说明通过linux下的接口实现.参考man7案例代码#include<pthread.h>#include<stdio.h>#include<time.h>#include<unistd.h>int main() { clockid_t st; struct timespec ts,te; if(pthread_getcpuclockid(pth..原创 2022-01-05 11:12:01 · 909 阅读 · 0 评论 -
android backtrace实现
backtrace简介有的系统没有实现backtrace这个函数.常见的就有linux还有一些docker的库.判断是否支持backtrace#include<stdio.h>#include<dlfcn.h>int main(){ void * bt = dlsym(NULL,"backtrace"); if(NULL != bt) { printf("support\n"); } else ..原创 2021-09-15 09:12:52 · 1054 阅读 · 0 评论 -
共享库so瘦身
文件组成核心ELF头部和段表.段表段表+段表名.段表名在一个单独的表中.各种段.text,.data,.rodata这些都是不可或缺的..got*,.rel*也是不可或缺的.字符串相关表可进行优化.符号表:在链接完成后,可将符号进行删除,未使用到的函数的代码也可以进行删除.删除编译选项 + strip.删除代码常用删除代码gcc-fdata-sections,-ffunction-secti..原创 2021-08-02 10:51:38 · 213 阅读 · 0 评论 -
编译一个尽量小的so
程序瘦身,只链接需要的函数和全局数据。原创 2021-07-29 23:42:02 · 283 阅读 · 0 评论 -
Linux内核信号基本概念
总览信号总览信号分了三个章节进行介绍.本章介绍基础理论,简单但是非常重要且有必要.本章总览各种信号和使用场景.信号源:内核,进程或自己(系统调用).信号处理:内核默认,开发自定义(自定义,忽略,恢复默认),忽略。信号屏蔽:屏蔽的信号被挂起排队,等到取消屏蔽的时候处理.信号等待:暂停执行进程,等待信号的到来.概念总览使用什么是信号进程间或进程与内核间的通讯方式.某进程收到信号,表示有与之相关的事情发生,需要立即处理或等会儿处理..原创 2021-01-12 11:34:07 · 849 阅读 · 0 评论