<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sj_djw的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/sj_djw</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; sj_djw]]></copyright><item><title><![CDATA[C++ 给string对象赋值指向NULL的char型指针变量问题]]></title><link>https://blog.csdn.net/sj_djw/article/details/104818373</link><guid>https://blog.csdn.net/sj_djw/article/details/104818373</guid><author>sj_djw</author><pubDate>Thu, 12 Mar 2020 14:28:17 +0800</pubDate><description><![CDATA[将指向NULL的char型指针变量赋值给string对象将会导致段错误。如下示例代码
#include&lt;cstdio&gt;
#include&lt;iostream&gt;
#include&lt;string&gt;

#include&lt;algorithm&gt;
#include &lt;sys/vfs.h&gt;
#include &lt;string&gt;

using n...]]></description><category></category></item><item><title><![CDATA[oracle持续连接造成的内存泄漏及出现TNS ORA-12516问题]]></title><link>https://blog.csdn.net/sj_djw/article/details/101766759</link><guid>https://blog.csdn.net/sj_djw/article/details/101766759</guid><author>sj_djw</author><pubDate>Mon, 30 Sep 2019 14:38:22 +0800</pubDate><description><![CDATA[使用Oracle API短时间内持续连接Oracle server，会出现“ORA-12516: TNS:listener could not find available handler with matching protocol stack”错误，同时会造成内存泄漏。
测试代码如下：
#include &lt;iostream&gt;
#include &lt;deque&gt;
#incl...]]></description><category></category></item><item><title><![CDATA[regex_t型智能指针引起的内存泄漏问题分析]]></title><link>https://blog.csdn.net/sj_djw/article/details/101759308</link><guid>https://blog.csdn.net/sj_djw/article/details/101759308</guid><author>sj_djw</author><pubDate>Mon, 30 Sep 2019 13:03:14 +0800</pubDate><description><![CDATA[我们知道，使用C++智能指针，可以省去我们在申请内存后需要释放对应内存的操作。比如，定义一个int型的shared_ptr并申请一块内存shared_ptr(int) pint(new int)，如果给pint重新赋值，或者出pint的作用域，那么，pint原来指向的内存会自动释放，而不需要我们调用delete操作符做释放操作。
不过，上述便利的前提是，申请的内存是基本数据类型，或者定义了析构函数...]]></description><category></category></item><item><title><![CDATA[Bro与Snort或Suricata对比]]></title><link>https://blog.csdn.net/sj_djw/article/details/99940840</link><guid>https://blog.csdn.net/sj_djw/article/details/99940840</guid><author>sj_djw</author><pubDate>Wed, 21 Aug 2019 10:19:48 +0800</pubDate><description><![CDATA[Snort是最初于1998年开发的开源入侵检测系统（IDS）/入侵防护系统（IPS）
Snort标志性格式的规则是整个威胁情报业的事实标准，它借用当时几款流行的开源工具（这些工具用于给网络流量指定唯一的特征，当特征满足时，则产生告警。在IPS模式下，如果希望，也可以丢弃或者阻止通信），提供了一种简单的规则定义语言。作为最早的全功能开源IDS平台，它在安全社区非常普及。普及性促使Snort成熟，但...]]></description><category></category></item><item><title><![CDATA[plsql报ORA-12154:TNS:could not resolve the connect identifier specified错误原因之一]]></title><link>https://blog.csdn.net/sj_djw/article/details/99852305</link><guid>https://blog.csdn.net/sj_djw/article/details/99852305</guid><author>sj_djw</author><pubDate>Tue, 20 Aug 2019 16:05:39 +0800</pubDate><description><![CDATA[先安装了plsql和instantclient，plsql用于连接远程数据库（连接方法见另外一篇文章：https://blog.csdn.net/sj_djw/article/details/94608750）。后来测试需要，在本地又安装了oracle server。
安装完oracle server，配置好tnsname.ora文件后，发现使用plsql连接不上server，连接过程中总是出现“...]]></description><category></category></item><item><title><![CDATA[解决C/C++内存堆积问题思路]]></title><link>https://blog.csdn.net/sj_djw/article/details/91414719</link><guid>https://blog.csdn.net/sj_djw/article/details/91414719</guid><author>sj_djw</author><pubDate>Tue, 06 Aug 2019 18:05:37 +0800</pubDate><description><![CDATA[1、弄清问题现象及发送场景，尝试复现问题。使用内存检测工具进行排查，比如使用valgrind工具进行内存检测
3、将现场出现内存泄露的进程生成coredump文件，使用gdb生成coredump文件
valgrind不支持调试已运行程序
5.4.     Is it possible to attach Valgrind to a program that is already running?
...]]></description><category></category></item><item><title><![CDATA[流量监控器Bro特性、历史及架构]]></title><link>https://blog.csdn.net/sj_djw/article/details/98585430</link><guid>https://blog.csdn.net/sj_djw/article/details/98585430</guid><author>sj_djw</author><pubDate>Tue, 06 Aug 2019 09:03:49 +0800</pubDate><description><![CDATA[引言

概述
Bro是一个被动的开源网络流量分析器。它主要是一个安全监视器，深入检查链路上的流量以发现可疑活动的迹象。然而，更普遍的讲，Bro支持一个范围广泛的流量分析任务，不仅在安全领域，还包括性能度量和协助排查故障。
站点部署Bro最直接的好处是可以得到一组用高级术语记录网络活动的日志。这些日志不仅包括链路上检测到的每个链接的全面记录，还包括应用层副本，比如，所有HTTP会话...]]></description><category></category></item><item><title><![CDATA[vmware桥接模式下主机与虚拟机相互ping不通的几种情况]]></title><link>https://blog.csdn.net/sj_djw/article/details/98504180</link><guid>https://blog.csdn.net/sj_djw/article/details/98504180</guid><author>sj_djw</author><pubDate>Mon, 05 Aug 2019 18:28:29 +0800</pubDate><description><![CDATA[vmware桥接模式下主机与虚拟机相互ping不通几种原因：
1、主机与虚拟机的IP没有配置在同一个网段。桥接模式下，虚拟机和主机具有同等地位，都连接到vmnet0虚拟交换机，因此两者的IP需要配置到相同的网段。一般，将虚拟主机的IP配置成与主机相同的网段的IP即可。
2、主机开启了防火墙，禁止了Ping服务
如下图，在防火墙中找到该服务，并允许。

3、虚拟机开启了防火墙或者安全功能限制了pin...]]></description><category></category></item><item><title><![CDATA[RabbitMQ FANOUT模式下创建生产者和消费者方法]]></title><link>https://blog.csdn.net/sj_djw/article/details/98184769</link><guid>https://blog.csdn.net/sj_djw/article/details/98184769</guid><author>sj_djw</author><pubDate>Fri, 02 Aug 2019 11:36:06 +0800</pubDate><description><![CDATA[源码路径：https://github.com/alanxz/SimpleAmqpClient
创建消费者步骤：
步骤1：创建channel，类似于创建一个tcp连接
static ptr_t Create(const std::string &amp;host = “127.0.0.1”, int port = 5672,
const std::string &amp;username = “g...]]></description><category></category></item><item><title><![CDATA[内存检测工具dmalloc在C++程序的运用]]></title><link>https://blog.csdn.net/sj_djw/article/details/97160809</link><guid>https://blog.csdn.net/sj_djw/article/details/97160809</guid><author>sj_djw</author><pubDate>Wed, 24 Jul 2019 20:32:30 +0800</pubDate><description><![CDATA[dmalloc是一款内存泄漏检测工具，主要用于检测C程序的内存泄漏问题。也可运用于C++程序内存泄漏的检测，但是无法打印出文件名和行号信息。
该工具的下载地址为：http://dmalloc.com/
下载最新版本v5.5.2到本地后，通过以下步骤应用到C++程序中。
1、解压dmalloc-5.5.2.gz文件到本地路径
2、编译前配置
./configure --prefix=/home/wa...]]></description><category></category></item><item><title><![CDATA[VMware虚拟机的网络模式 — 桥接模式、仅主机模式、NAT模式的特点和配置]]></title><link>https://blog.csdn.net/sj_djw/article/details/96650421</link><guid>https://blog.csdn.net/sj_djw/article/details/96650421</guid><author>sj_djw</author><pubDate>Sat, 20 Jul 2019 23:59:18 +0800</pubDate><description><![CDATA[了解网络模式之前，先看看所涉及到的虚拟设备一.  VMware虚拟设备
三种虚拟交换机（对应三种网络模式）
VMnet0 虚拟交换机 ：Bridged桥接模式
VMnet1 虚拟交换机 ：Host-Only仅主机模式
VMnet8 虚拟交换机 ：NAT模式打开
VMware虚拟机，点击菜单栏  编辑 -&gt; 虚拟网络编辑器，可查看这三种虚拟交换机

三种虚拟网卡  （ 相当于物理主机和虚拟机的...]]></description><category></category></item><item><title><![CDATA[mpc-1.0.3编译mpfr_fmma类型冲突错误]]></title><link>https://blog.csdn.net/sj_djw/article/details/96483399</link><guid>https://blog.csdn.net/sj_djw/article/details/96483399</guid><author>sj_djw</author><pubDate>Fri, 19 Jul 2019 16:40:45 +0800</pubDate><description><![CDATA[在编译mpc-1.0.3时出现mpfr_fmma类型冲突错误，错误信息如下图：

编译mpc需要依赖GMP和MPFR，首先确保mpc-1.0.3要求的这两个库版本没有问题。要求的GMP和MPFR版本如下图：

如下图红框所示，要求安装的依赖版本均满足要求，说明依赖是不存在问题的。

根据错误信息，找到包含的头文件该函数的声明如下：

再看看该函数再mul.c文件的声明，如下：

两处声明不一致（仅...]]></description><category></category></item><item><title><![CDATA[“undefined reference to symbol 'sem_post@@GLIBC_2.2.5'”及“DSO missing from command line”问题]]></title><link>https://blog.csdn.net/sj_djw/article/details/96269275</link><guid>https://blog.csdn.net/sj_djw/article/details/96269275</guid><author>sj_djw</author><pubDate>Wed, 17 Jul 2019 09:02:09 +0800</pubDate><description><![CDATA[编译过程中出现以下异常信息：
[xxx@localhost memstat]$ g++ -o test commutex.cpp memrecord.cpp test.cpp -lboost_thread  -DDEBUG_MEMORY -DLINUX              
tmp/cc6qIOs6.o: undefined reference to symbol 'sem_post@@GL...]]></description><category></category></item><item><title><![CDATA[__gnu_cxx::hash_map编译的若干问题]]></title><link>https://blog.csdn.net/sj_djw/article/details/96145697</link><guid>https://blog.csdn.net/sj_djw/article/details/96145697</guid><author>sj_djw</author><pubDate>Tue, 16 Jul 2019 16:04:33 +0800</pubDate><description><![CDATA[今天看《libstdc++ manual 20110201》中提到这个hash_map是为了向后兼容SGI/HP的代码，但是已经被废弃了，取而代之的是C++0x中的unordered_map/unordered_multimap，在tr1文件夹中（老版本的编译器一般不带这个文件夹）。==========================================================...]]></description><category></category></item><item><title><![CDATA[使用PLSQL Developer连接远程数据库的两种方法]]></title><link>https://blog.csdn.net/sj_djw/article/details/94608750</link><guid>https://blog.csdn.net/sj_djw/article/details/94608750</guid><author>sj_djw</author><pubDate>Thu, 04 Jul 2019 14:31:47 +0800</pubDate><description><![CDATA[使用plsql连接远程数据库，不仅要安装PLSQL Developer，还需要安装oracle instantclient客户端，并将PLSQL Developer的tools-&gt;preferences connection的oracle home设置成oracle instantclient的安装路径，OCI library设置成oracle instantclient的安装路径的oci....]]></description><category></category></item><item><title><![CDATA[C/C++字节对齐规则]]></title><link>https://blog.csdn.net/sj_djw/article/details/92806924</link><guid>https://blog.csdn.net/sj_djw/article/details/92806924</guid><author>sj_djw</author><pubDate>Wed, 19 Jun 2019 10:52:36 +0800</pubDate><description><![CDATA[字节对齐与具体编译器相关，但一般都遵循以下三条规则：
（1）结构体变量的首地址能够被其最宽基本类型成员的大小所整除；
（2）结构体每个成员相对于结构体首地址的偏移量，都是#pragma pack指定的数值和该成员大小中较小那个的整数倍。如有需要编译器会在成员之间加上填充字节；
（3）结构体的总大小为结构体最宽基本类型成员大小与#pragma pack指定的数值中，较小那个的整数倍，如有需要编译器会...]]></description><category></category></item><item><title><![CDATA[产生core dump文件的两种方法]]></title><link>https://blog.csdn.net/sj_djw/article/details/91993067</link><guid>https://blog.csdn.net/sj_djw/article/details/91993067</guid><author>sj_djw</author><pubDate>Fri, 14 Jun 2019 18:01:09 +0800</pubDate><description><![CDATA[由于应用错误，如浮点异常、段错误，操作系统转入内核的异常处理，向对应的进程发送特定的信号（如SIGSEGV）。如果进程中没有对这些信号进行处理，就会转入默认的处理，产生coredump文件就是其中一种。coredump文件其实就是内存的映像，即进程执行时的内存的所有内容。
很多系统默认情况下，产生coredump文件的开关是关闭的。下面介绍2种产生coredump文件的方法。
1、通过异常信号产生...]]></description><category></category></item><item><title><![CDATA[出现GDB No symbol "xxx" in current context的几种原因分析]]></title><link>https://blog.csdn.net/sj_djw/article/details/91958035</link><guid>https://blog.csdn.net/sj_djw/article/details/91958035</guid><author>sj_djw</author><pubDate>Fri, 14 Jun 2019 16:26:25 +0800</pubDate><description><![CDATA[在进行gdb调试时（包括使用core dump文件调试），经常出现GDB No symbol “xxx” in current context问题，常见的几种原因如下：
1、使用gcc编译的时候未使用-g选项。或者加了-g选项，同时使用了-o选项。建议编译的时候使用-g选项的时候，同时使用-Og可以关闭编译优化（-O选项较低gcc版本不支持）。

2、编译的可执行程序的调试信息格式与GDB所支持的...]]></description><category></category></item><item><title><![CDATA[用户态进程地址空间映射]]></title><link>https://blog.csdn.net/sj_djw/article/details/91587512</link><guid>https://blog.csdn.net/sj_djw/article/details/91587512</guid><author>sj_djw</author><pubDate>Wed, 12 Jun 2019 18:32:27 +0800</pubDate><description><![CDATA[1、32位及64位地址空间分布

2、proc maps文件解析
查看用户进程地址映射可使用pmap命令，也可查看proc文件系统下的maps文件。下面是对proc下maps文件信息的解析。
/proc/pid/maps显示进程映射了的内存区域和访问权限。对应内核中的操作集为proc_pid_maps_op，具体的导出函数为show_map。内核中进程的一段地址空间用一个vm_area_struc...]]></description><category></category></item><item><title><![CDATA[oracle Redo Logs]]></title><link>https://blog.csdn.net/sj_djw/article/details/90770825</link><guid>https://blog.csdn.net/sj_djw/article/details/90770825</guid><author>sj_djw</author><pubDate>Tue, 04 Jun 2019 16:12:23 +0800</pubDate><description><![CDATA[The redo log records all changes made to data, including both uncommitted and committed changes.
Oracle通过Redo来保证数据库的事务可以被重演，从而使得在故障之后，数据可以被恢复。在数据库中，Redo的功能主要通过3个组件来实现：Redo Log Buffer、LGWR后台进程和Redo Log...]]></description><category></category></item></channel></rss>