各种知识收集1(持续更新)
wchan表示导致进程睡眠或者等待的函数
SS iproute2,nslookup,dig
从某种意义上说,iproute工具集几乎可以替代掉net-tools工具集,具体的替代方案是这样的:
用途 net-tool(被淘汰) iproute2
地址和链路配置 ifconfig ip addr, ip link
路由表 route ip route
邻居 arp ip neigh
VLAN vconfig ip link
隧道 iptunnel ip tunnel
组播 ipmaddr ip maddr
统计 netstat ss
https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
constructor属性可以使函数在main()函数之前执行,destructor属性会让函数在main()函数完成或调用exit()之后被执行。
这些属性可以用来在程序运行之前初始化所需的数据,非常有用。而且这两个属性都还可以指定优先级,控制使用修饰的函数的执行顺序,
优先级的值必须大于100,因为0到100之间的优先级由gcc来使用,优先级的值越小,优先级越高,会优先执行。另外还有一点需要注意,
如果是接收到信号退出,例如SIGSEGV或者SIGKILL信号,destructor属性修饰的函数则不会被调用。具体可以参见《Declaring Attributes of Functions》 。
我们先来看看不指定优先级时,调用的顺序是什么样的,示例程序如下:
2、
3、
__attribute__ ((packed)); 不进行内存对齐
1.__attribute__((__visibility__("defaullt"))) 设置函数符号对外的可见性,如果设置为hidden则其他so库不可见
2.gcc编译的时候 可用-fvisibility=hidden指定所有的函数对外的可见性
1.
-ffunction-sections , 编译的时候为每个function分配独立的section
-fdata-sections , 编译的时候为每个data item分配独立的section
--gc-sections,会使ld删除没有被使用的section
上面3个一起使用,在最终输出的exe中,没有被引用到的函数和变量会被删除
2
-w 关闭所有告警
-werror 将警告信息当做错误对待
-wall 允许发出gcc的所有警告
__attribute__((constructor)) void init() :设置为构造函数属性时,会在加载动态库时自动调用
__attribute__((destructor)) void deinit():设置为析构函数属性时,会在卸载动态库时自动调用
make -f 指定Makefile
Makefile的gcc参数:-Dtest 表示指定test宏
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!