加载中
共享内存使用

写内存 #include <sys/mman.h> #include <sys/types.h> #include <fcntl.h> #include <unistd.h> typedef struct{ char name[4]; int age; } people; main(int argc, char** argv) { int fd,...

03/04 20:17
0
JWT 在 Web 服务中进行无状态授权的原理

JWT 指的是 JSON Web Tokens,是一串数据加密后生成的 Token 字符串,通过以下方式服务器端可以判定客户端的身份。 1、客户端用户 userA 使用用户名密码登录服务器 2、服务器返回给用户数据和...

2017/12/13 19:10
41
用继承和反射机制实现业务扩展

以前学 C++ 的时候,总是听说可以用继承和基类指针去扩展业务逻辑,而对整体系统架构的侵入很小。其实对这里理解并不深。最近在看其他人重构的项目时,发现这种设计可以将系统框架和业务逻辑...

2017/11/27 17:22
309
pthread 使用中的问题

在使用 pthread 多线程测试自己写的 API 的并发性能时,发现 API 里的测试信息都打不出来。写了个最小系统来复现问题。 #include <pthread.h> #include <stdio.h> #include <stdlib.h> voi...

2017/03/02 10:35
8
C++11 的 thread_local

线程一般没有自己的全局变量,C++11 引入了 thread_local 解决了这个问题。 示例 #include <iostream> #include <string> #include <thread> #include <mutex> #include <iostream> #inclu...

2017/01/17 09:48
47
零长度数组

在结构体定义中遇到了长度为 0 的数组,它的作用是什么呢?写下面的代码进行测试。 代码 #include <iostream> using namespace std; struct Info {   int num;   char zero_array[0]; }; int...

2016/12/26 15:01
38
C++ 实现简单的闭包

这里的闭包指的是一个闭包类,这个闭包类使用一个通用的辅助接口函数(如 NewCallback)来生成。在生成的时候传入需要使用的函数指针以及这个函数将要使用到的参数,生成闭包工具类后再使用一...

2016/12/08 11:15
915
使用 C++11 的线程

除了使用 pthread_create 的方式创建新线程,还可以使用 C++11 的线程 thread 类。 示例 #include <iostream> #include <thread> #include <chrono> void fun1() {   std::this_thread::slee...

2016/12/06 10:45
16
使用 leveldb

leveldb 是 google Jeff Dean 大神的作品,就是那个传说中写代码效率瓶颈不在手速,而在 USB3.0 传输比率的人。 The leveldb library provides a persistent key value store. Keys and valu...

2016/12/05 15:53
216
使用共享内存

在搜索引擎这些应用中,一个进程会把大量的索引数据写入到内存中,另一个进程来读内存。这个场景会使用共享内存。 共享内存和普通内存的区别 普通内存也可以用来共享数据,承担和共享内存一样...

2016/11/07 17:02
42
C++ 中分割字符串

经常在 C++ 里需要将一个字符串按分割符分开,利用 istringstream 封装一个函数。 #include <iostream> #include <iterator> #include <string> #include <sstream> #include <vector> using...

2016/10/24 20:20
51
C++ 处理中文符号

英文符号替换为英文逗号 processPunctuation(string& tag) { std::set<char> punctuation_set; punctuation_set.insert(' '); punctuation_set.insert('\t'); punctuation_...

2016/10/14 11:14
69
Protobuffer Repeated 字段填充的坑

遇到这样一个问题,往 Protobuffer 的 Repeated 字段添加新的内容,只能添加一个项进去。   topic->clear_doc_list();   UserDocContent* add_doc = topic->add_doc_list();   for...

2016/10/09 14:57
91
datetime 和 timestamp 相互转换

AO 从数据库读出来的格式一般为 datetime,返回给 CGI 时表示为 uint32 的形式。可以用以下代码进行转换。 字符串转 timestamp #include <time.h> #include <stdio.h> time_t strtotime(char...

2016/08/12 18:06
86
linux 使用动态链接库

实验源文件 头文件 test_so.h #include "stdio.h" void test_a(); void test_b(); void test_c(); test_a.cpp test_b.cpp test_c.cpp 都如下所示 #include "test_so.h" void test_a() {   pr...

2016/08/02 16:31
37
char 数组转 int

最近遇到一个问题,需要将多个 protobuf 序列化后存为文件,于是定了如下的协议格式。规定 PB1_size 以 4 字节大小存储在文件中。 [PB1_size][PB1_body][PB2_size][PB2_body]...[] PBn_siz...

2016/07/09 17:28
109
给二维矩阵分配堆内存

C++ 风格 double** allocateHeap(int rows, int cols) {   double **A;   A = new double* [rows];   for (int i=0; i<rows; i++)   {     A[i] = new double [cols];   }   return A; } void rel...

2015/12/08 10:21
40
2-D 图像卷积计算

卷积其实是图像处理中最基本的操作,我们常见的一些算法比如:均值模糊、高斯模糊、锐化、Sobel、拉普拉斯、边缘检测等等一些和领域相关的算法,都可以通过卷积算法实现。 ##实现 这是一个简...

2015/12/07 21:36
91
RAII实现的mutex资源类

RAII,指的是Resource Acquisition is Initialization。即使用资源时对资源初始化,使用完毕进行自动释放。它利用stack上的临时对象生命期是程序自动管理的这一特点,将我们的资源释放操作封...

2015/06/06 14:28
35
简单内存池

##System Call## 先测试系统调用new/delete的用时。 #include <iostream> #include <time.h> using namespace std; timespec diff(timespec start, timespec end) {   timespec temp;   if(...

2015/05/06 11:20
116

没有更多内容

加载失败,请刷新页面

返回顶部
顶部