06 2018 档案
摘要:这个问题的背景是在用libevent的buffer_remove时出现的,写一个伪代码 在这里断点调试时发现buffer的数据是正确的,转到str时,总会在字符串的结尾出现几个乱七八糟的字符且每次都不一样. 下面说一下原因,首先我们都知道每个字符串是以'\0'(即0)结尾的,而buffer_remo
阅读全文
摘要:判断表是否存在方法1: 方法2: 用if判断,但有以下条件 The IF statement is part of the default procedural language PL/pgSQL. You need to create a function or execute an ad-hoc
阅读全文
摘要:这样就会崩溃,可以用memset 或者结构体中加入一个别的类型的对象, 另外string 用mallo分配内存也会出错,因为malloc不会调用string的构造函数,所以应用new
阅读全文
摘要:1.TCHAR 2.string的c.str() 使用时要注意,当这样用时 string s="123"; char *c = s.c_str(); 其实是错误的,这和char *直接赋值一样,如果s是一个局部变量,离开作用域后内存销毁,再调用c就会出错,要用正确的方法strcpy(),前提是记得申
阅读全文
摘要:写两个简单的demo,对照一下各自的方法
阅读全文
摘要:之前简单分析了libevent的源码,过了一段时间要用的时候发现完全忘记了。。从头记录一下流程 1.编译 可以从github下载libevent的压缩包,解压后 修改以下三个文件,添加宏定义: 在以下3个文件开头添加“#define _WIN32_WINNT 0x0500” libevent-2.0
阅读全文
摘要:其实就是建立tcp连接,通过对数据包的解析是否有http的头字段来判断是不是http的,wireshark就是这样 下面是一个别人总结的图 这个我自己写了一下但是没实现到cgi那里,贴一个别人用windows实现的地址 https://blog.csdn.net/magictong/article/
阅读全文
摘要:c++中对new申请的内存的释放方式有delete和delete[两种方式,到底这两者有什么区别呢? 1.我们通常从教科书上看到这样的说明:delete 释放new分配的单个对象指针指向的内存delete[] 释放new分配的对象数组指针指向的内存那么,按照教科书的理解,我们看下下面的代码:int
阅读全文
摘要:代码不完善,大概是这个思路,赋值,拷贝构造,析构时都要考虑引用次数
阅读全文
摘要:部分参考地址https://blog.csdn.net/yanglingwell/article/details/56011576 auto_ptr是c++标准库里的智能指针,但是具有以下几个明显的缺陷,使用时要注意 1.就是所谓的控制权转移,下面是模拟代码 在赋值运算符重载和拷贝构造函数中将资源转
阅读全文
摘要:先上一段代码 using namespace std;class A{public: ~A(){ cout << "deconstruct"; };};#include "vector"int main(){ vector<A*>a(100); A *aaa = new A; a.push_back
阅读全文
摘要:1. 索引的特性 1.1 加快条件的检索的特性 当表数据量越来越大时查询速度会下降,在表的条件字段上使用索引,快速定位到可能满足条件的记录,不需要遍历所有记录。 #在这个案例中:执行同一条SQL。t2有索引的执行数据是0.052 ms;t1没有索引的是:5.741 ms; 1.2 有序的特性 索引本
阅读全文
摘要:一、简介 PostgreSQL 中有一个很有用处的内置函数generate_series,可以按不同的规则产生一系列的填充数据。 二、语法 三、实例 3.1) int 类型 a. 不写步进时默认为1 b. 设置步进 david=# select generate_series(1, 10, 3);
阅读全文
摘要:Shell中可以将数字或字符直接赋予变量,也可以将Linux命令的执行结果赋予变量,如下: (1) $ count=9 #将数字赋予变量count (2) $ name="ming" #将字符赋予变量name (3) $ listc=`ls -la` #将Linux命令赋予listc,listc的值
阅读全文