taoyuanforrest
码龄17年
关注
提问 私信
  • 博客:861,961
    社区:23
    861,984
    总访问量
  • 211
    原创
  • 34,887
    排名
  • 175
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:芬兰
  • 加入CSDN时间: 2008-08-19
博客简介:

fish的专栏

查看详细资料
  • 原力等级
    当前等级
    3
    当前总分
    482
    当月
    2
个人成就
  • 获得192次点赞
  • 内容获得56次评论
  • 获得723次收藏
  • 代码片获得325次分享
创作历程
  • 15篇
    2024年
  • 12篇
    2023年
  • 1篇
    2022年
  • 1篇
    2021年
  • 14篇
    2020年
  • 31篇
    2019年
  • 32篇
    2018年
  • 8篇
    2017年
  • 15篇
    2016年
  • 30篇
    2015年
  • 15篇
    2014年
  • 54篇
    2013年
  • 39篇
    2012年
  • 2篇
    2011年
成就勋章
TA的专栏
  • Docker容器
  • Kubernetes
    2篇
  • 设计模式
    1篇
  • 网络编程&网络安全
    7篇
  • Java
    32篇
  • Android
    3篇
  • C/C++
    46篇
  • 系统运维
    37篇
  • Linux内核
    21篇
  • 数据库
    6篇
  • eclipse
    3篇
  • javascript
    6篇
  • Hadoop
    9篇
  • 商业智能BI
    8篇
  • Spring
    9篇
  • 广告
    1篇
  • python
    15篇
  • JVM调优
    4篇
  • 持续集成
    2篇
  • Nginx
    1篇
  • 性能调优&性能测试
    14篇
  • 项目管理
    2篇
  • 搜索
    5篇
  • 机器学习&人工智能
    27篇
  • Shell
    3篇
  • Linux
    23篇
  • 多线程
    4篇
  • ElasticSearch
    1篇
兴趣领域 设置
  • 编程语言
    c++c语言
  • 服务器
    linux
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C++ 内存布局 - Part6: 虚继承

虚继承可以在菱形继承体系中,防止派生类中有多份重复祖基类内容。如下图所示,如果是常规继承,Class Final中会有两份Class Base的内容。通过虚继承,即Derived1 虚继承自Base, Derived2 也虚继承自Base, 那么Final中将最终保留一份Base部分的内容。
原创
发布博客 2024.10.17 ·
882 阅读 ·
8 点赞 ·
0 评论 ·
14 收藏

C++ 内存布局 - Part5: 继承关系中 构造析构与vptr的调整

当delete这个派生类对象时,首先执行派生类的析构函数,此时对象的vptr仍然执行派生类的虚表,派生类的析构函数会继续执行基类的析构函数,此时对象的vptr会指向基类的虚表。当new一个派生类对象时,首先会执行基类的构造函数,这时这个构造中的对象,其vptr指向基类的虚表,当基类部分构造完毕,继续执行派生类的构造函数时,此时对象的vptr指向派生类的虚表。从结果中可以看到, 在执行Base部分的构造和析构时,vptr指向的是基类的虚表,指向Derived部分的构造和析构时,vptr指向的是派生类的虚表。
原创
发布博客 2024.10.14 ·
299 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

C++ 内存布局 - Part4: 多继承与this指针调整

可见,Base2中被重写的Derived::fooC() 函数指针被放到了_vptr.Base1虚表之中,没有被重写的Base2::fooD() 依然存放在_vptr.Base2。可见,是将指向Base2部分的指针向上偏移16,指向Derived对象的内存起始地址,从而访问到Base1部分虚表里的Derived::fooC()将会对当前的this指针(b2ptr)向上偏移到Derived对象起始地址。
原创
发布博客 2024.08.20 ·
566 阅读 ·
4 点赞 ·
0 评论 ·
2 收藏

C++ 内存布局 - Part3: 隐式转换为基类指针

如果new一个派生类对象,把new之后的指针赋值给基类指针,那这个基类指针指向哪里,一定是这个派生类对象的起始地址吗?【答案】赋值给基类指针以后,这个基类指针会指向派生类对象中这个基类部分的起始地址,编译器自动进行了指针偏移操作。
原创
发布博客 2024.08.16 ·
405 阅读 ·
10 点赞 ·
0 评论 ·
2 收藏

C++ 内存布局 - Part2: 从内存布局角度看类型转换 static_cast, dynamic_cast, reinterpret_cast

开门见山,先把结论写在这里:1)static_cast 在做基类指针和派生类指针之间的转换时,会根据编译时的静态偏移操作指针,但是没有运行期的类型安全检查,程序员需要自己确保类型的正确性,比如派生类指针确实指向了派生类对象。2)dynamic_cast 依赖于虚表做运行期类型检查,适用于有虚函数的类型转换。3)reinterpret_cast是最不安全的类型转换,完全暴力强制转换。
原创
发布博客 2024.08.16 ·
1111 阅读 ·
25 点赞 ·
0 评论 ·
11 收藏

C++ 内存布局 - Part1: typeid, typeinfo及单继承

typeinfo中存储的是关于类型的信息,可以通过以下代码都是在X86_64 Linux中完成,g++编译。可见,在没有虚函数的情况下,即使指针 ptr实际指向的是派生类对象,但是没有虚表的帮助,只能返回编译器静态类型,也就是基类类型。[有虚函数的类继承]
原创
发布博客 2024.08.13 ·
647 阅读 ·
3 点赞 ·
0 评论 ·
6 收藏

C11与C++11关于Atomic原子类型的异同

头文件C11 使用。C++11 使用。数据类型C11 使用atomic_int等_Atomic类型定义。C++11 使用模板类。初始化C11 推荐使用宏进行初始化,也可以直接赋值。C++11 通过构造函数直接初始化。操作函数C11 使用标准库函数,如。C++11 使用类成员函数,如storeload。编译参数C11 需要使用-std=c11。C++11 需要使用-std=c++11。
原创
发布博客 2024.06.17 ·
620 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

GNU C 宏构造利器:语句表达式

GNU C 对 C 标准作了扩展,允许在一个表达式里内嵌语句,允许在表达式内部使用局部变量、for 循环和 goto 跳转语句。这样的表达式,我们称之为语句表达式。({ 表达式1;表达式2;表达式3;})语句表达式最外面使用小括号()括起来,里面一对大括号{}包起来的是代码块,代码块里允许内嵌各种语句。语句的格式可以是 “表达式;”这种一般格式的语句,也可以是循环、跳转等语句。跟一般表达式一样,语句表达式也有自己的值。语句表达式的值为内嵌语句中最后一个表达式的值。我们举个例子,使用语句表达式求值。
转载
发布博客 2024.06.14 ·
170 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

[转载] linux内核中GNU C和标准C的区别

linux 系统上可用的C编译器是GNU C编译器,它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布。GNU C对标准C进行进一步扩展,以增强标准C的功能。
转载
发布博客 2024.06.14 ·
160 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Netfilter/iptables

其中:etables作用域数据链路层,arptables针对ARP, iptables/ip6tables针对IP层。nftables 是新的包过滤组件.nft是相对应的新的用户态组件,用于替换etables,arptables,iptables,ip6tables.
原创
发布博客 2024.06.02 ·
394 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

GDB调试Linux内核模块

调试内核模块与调试内核类似,一点区别是内核模块需要单独编译,编译时注意加入符号信息。在调试机进行远程调试时,需要载入这些符号信息,同时需要指定模块在内核中的地址。
原创
发布博客 2024.05.22 ·
859 阅读 ·
5 点赞 ·
0 评论 ·
10 收藏

SO_REUSEPORT 之 TCP负载均衡验证

首先启动两个tcp server, 代码里开启 SO_REUSEPORT。从回复的server 进程id 可见,负载均衡做的很好。
原创
发布博客 2024.05.21 ·
472 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

busybox依赖静态库

发布资源 2024.05.17 ·
rpm

busybox依赖静态库

发布资源 2024.05.17 ·
rpm

Virtualbox环境通过GDB调试Linux内核

版本 linux-5.10.216.tar.xz。
原创
发布博客 2024.05.16 ·
1226 阅读 ·
16 点赞 ·
0 评论 ·
10 收藏

参考.config文件

发布资源 2024.05.16 ·
config

VirtualBox虚拟机串口通信

设置方式就是在VirtualBox的设置里面设置串口,需要注意的是其中一台不勾选“连接至现有通道或套接字”,另外一台勾选,不勾选的那台需要先启动。在其中一台执行 cat /dev/ttyS0 ,另外一台执行 echo "hello world" > /dev/ttyS0。可以看到在执行cat /dev/ttyS0 的机器同步输出。现在希望两台CenOS虚拟机能通过串口通信。两台Guest虚拟机: CentOS。设置前先关闭两台虚拟机。
原创
发布博客 2024.05.16 ·
924 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

Docker安装配置

1) 查找镜像,如果有阿里云账号,那么:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors。参照:https://docs.docker.com/config/daemon/systemd/#httphttps-proxy。通过docker info可以查看是否已经生效。通过docker info可以查看是否已经生效。然后可以执行docker build。Docker中国区官方镜像。
原创
发布博客 2024.03.22 ·
428 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

k8s containerd查看镜像

【代码】k8s containerd查看镜像。
原创
发布博客 2023.10.08 ·
951 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

k8s 集群安装(vagrant + virtualbox + CentOS8)

主机环境:windows 11k8s版本:v1.25dashboard版本:v2.7.0calico版本: v3.26.1CentOS8版本:4.18.0-348.7.1.el8_5.x86_64##################### 所有节点都需要执行的操作 开始 #################ssh配置:配置centos yum源:如果需要设置代理:增加一行:### 升级内核:安装完以后reboot。
原创
发布博客 2023.10.07 ·
980 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多