
C++
storm_zy
follow your dream.
展开
-
Linux C++ 字符编码转换 GBK与UTF8互转
使用 iconv 系列函数在linux下进行字符编码转换原创 2024-02-21 11:13:45 · 1043 阅读 · 0 评论 -
排序算法之——归并排序 C语言实现
一 、归并排序的思路:归并排序采用的是分治的思想,就是将数组进行分隔,直到最小的单位(两个元素),然后对最小的单位进行排序。最后将排好序的单位依次遍历到数组中。1 将数组进行分隔,直到不能再分的最小单位(两个元素)。2 将最小单位排序3 将最小单位遍历到数组中二、代码#include <stdio.h>void merge_part(int arr[], int l, int m, int r){ // 此处应该用 malloc int tmp[256] = { 0 }原创 2020-12-20 19:11:58 · 1451 阅读 · 0 评论 -
排序算法之——快速排序 C语言实现
快速排序的思路:1 从源数组里面选择一个数 v 作为对比2 i 从左边开始遍历,直到找到一个比 v 大的数3 j 从右边开始遍历,直到找到一个比 v 小的数,或者遍历到最左边跳出循环4 交换两个位置 i 和 j 的数,回到步骤25 交换 位置 i 和 v 的数代码:#include <stdio.h>void swap(int * a, int *b){ int tmp = *a; *a = *b; *b = tmp;}int partition(int a[],原创 2020-11-06 09:24:42 · 408 阅读 · 0 评论 -
socket编程之openssl入门
转载自:文章链接 1、什么是ssl Secure Sockets Layer 它是支持在Internet 上进行安全通信的标准, 并且将数据密码技术集成到了协议之中。 数据在离开计算机之前就已经被加密, 只有到达它预定的目标后才被解密。 证书和密码学算法支持了这一切的运转,使用OpenSSL来切身体会它们。 理论上,如果加密的数据在到达目标之前被截取或窃听,那些数据是不可能被破解的。 不过,由于计算机的变化一年比一年快,而且密码翻译方法有了新的发展,因此转载 2020-10-28 17:28:15 · 273 阅读 · 0 评论 -
基于EventLoop的tcp服务端 C++实现(四) ——完整的流程
学习github上的项目 flamingo 自己的笔记。flamingo原作者的csdn是: analogous_loveflamingo是多线程的,但是本人能力有限,只是单线程的还算能理解一点。自己参照flamingo实现的基于epoll的单线程服务端,git地址:https://gitee.com/storm_zy/StServerFrame实现了简单的echo功能,很多代码直接拷...原创 2019-10-14 17:08:09 · 778 阅读 · 0 评论 -
GDB 常用命令
gdb启动调试程序gdb filenamegdb attach pid(running process)gdb filename coredumpctrl + c #终端程序run® #启动或重启程序backtrace #查看当前线程的调用堆栈frame(f) 堆栈编号 #切换到指定调用堆栈list(l) #查看当前堆栈的代码行的前后几行(具体多少行可以...原创 2019-09-24 10:56:37 · 285 阅读 · 0 评论 -
基于EventLoop的tcp服务端 C++实现(一) —— 网络事件模块结构描述
一、自己当时的想法自己当时在想如何设计一个通用的Tcp服务端,就是将各个部分模块化,然后只需更改其中的少部分模块(例如业务session)即可完成完整的服务端。然后就从网上找啊找,最后找到了一个大牛写的一个即时通信类软件flamingo,从github上一搜就能搜到,然后开始研究其服务端架构。然后终于感觉对框架稍微懂了一点点,所以就赶紧记录下来。二、思考服务端框架的过程...原创 2019-09-27 13:06:20 · 2340 阅读 · 0 评论 -
基于EventLoop的tcp服务端 C++实现(二) ——服务端TcpServer的模块设计描述
学习github上的项目 flamingo 自己的笔记。flamingo原作者的csdn是: analogous_love一、如何设计TcpServer——功能上来说一个TcpServer需要至少一个监听的端口(Listener)。需要提供新连接到来时的处理方法,即将连接加入到自己的列表中进行维护等等。需要维护自己的连接列表 TcpConnections。需要处理过时失效的连接 ...原创 2019-10-09 11:41:14 · 813 阅读 · 0 评论 -
基于EventLoop的tcp服务端 C++实现(三) ——tcp连接(TcpConnection)和业务层会话(MySession)
学习github上的项目 flamingo 自己的笔记。flamingo原作者的csdn是: analogous_loveflamingo是多线程的,但是本人能力有限,只是单线程的还算能理解一点。自己参照flamingo实现的基于epoll的单线程服务端,git地址:https://gitee.com/storm_zy/StServerFrame实现了简单的echo功能,很多代码直接拷...原创 2019-10-11 12:01:16 · 567 阅读 · 0 评论 -
Linux下C++程序崩溃不产生core文件
通过运行下面的bash脚本,即可在C++程序崩溃时产生core文件。#!/usr/bin/bashlimitsFile=/etc/security/limits.confif [ "unlimited" != "`egrep "^*.*soft.*core.*" $limitsFile | awk -F' ' '{print $4}'`" ]; then echo "set core...原创 2018-11-16 14:45:59 · 2628 阅读 · 0 评论 -
C++ vector 结构体 根据某元素匹配 find_if 排序 sort
0x00 使用场景 结构体的vector,有时候需要查找容器中符合某个结构体成员条件的情况。0x01 查找匹配成员 举例struct STest{ int m_id; char name[16]; STest(int id, char *lName) { m_id = id; if (strlen(lName) ...原创 2018-08-14 14:06:03 · 1914 阅读 · 0 评论 -
C++头文件的工作原理
---------------------------------------------------------------------------------------------------------------------欢迎关注 [懒人漫说] 公众号,分享Java、Android、C/C++ 技术,包括基础、自己遇到的问题解决过程。当然如果关注并留言问题的话,我们...转载 2017-01-07 13:59:45 · 745 阅读 · 0 评论 -
gcc编译器搜索头文件路径
原文链接 ---------------------------------------------------------------------------------------------------------------------欢迎关注 [懒人漫说] 公众号,分享Java、Android、C/C++ 技术,包括基础、自己遇到的问题解决过程。...转载 2017-01-05 22:12:26 · 7772 阅读 · 0 评论 -
C++源码流程图分析[转载]
**原文链接: http://blog.youkuaiyun.com/u010740725/article/details/51387810** 最近在做与OpenCV有关的项目,需要参考OpenCV源码的实现。起初在VS中手动查看OpenCV源码,发现简单的函数能够很快整理出该函数的层次调用关系,但是遇到一些复杂的函数时,一层一层的往下查看一会儿脑袋就大了。并且,在查看源码的过程中,发现很转载 2016-12-05 14:17:20 · 7809 阅读 · 0 评论 -
ip校验和 及 udp校验和 的计算方法
一、ip校验和的计算: 计算方法: 1. ip包头(共20个字节)按照每16个bit作为一个值依次进行相加 2. 将计算结果的进位加到低16位上 3. 将结果取反 ip包头的内存内容 eg: 45 00 00 20 0F B8 00 00 80 11 00 00 C0 A8 0A 9F C0 A8 0A C7将.........原创 2016-10-20 13:05:05 · 26339 阅读 · 5 评论 -
GetLastError和FormatMessage的简单使用
当调用一些Win32的函数的时候,出错的信息要通过GetLastError和FormatMessage函数来获取出错信息DWORD dwErrorCode = ::GetLastError();TCHAR* buffer = NULL;::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTE...原创 2016-07-29 09:48:50 · 2754 阅读 · 0 评论 -
C++使用SQLite3心得 -- sqlite3以二进制形式存取图片(MFC,CppSQLite3U封装类)
实现功能:1.将图片文件(.jpg)以二进制形式存储到sqlite3里面 2.从sqlite3里面读取二进制形式的图片数据并保存到图片文件(.jpg)*注:本人超级菜鸟 此博客是为了总结用 仅仅说明了函数作用 可能直接编译不过 见谅 文中有何不妥之处 还望各位读者不吝赐教一、创建/打开 sqlite3数据库 并 创建/打开 表C++原创 2015-09-29 10:22:46 · 4335 阅读 · 1 评论 -
Linux下查找某路径下包含某字符串的文件
以查找 INADDR_ANY 宏为例:[...]# grep -R "INADDR_ANY" /usr/include//usr/include/netinet/in.h:#define INADDR_ANY ((in_addr_t) 0x00000000)也可以:[...]# cd /usr/include/[...]#grep -R "INADDR_ANY"...原创 2018-02-26 17:25:08 · 1227 阅读 · 0 评论 -
Linux下查看结构体
从百度知道搜到的方法。1 cd /usr/include2 ctags -R3 vim -t 标识符名称*注: 笔记之用, 如有不妥, 还望指正。----------------------------------------------------------------------------------------------欢迎关注 [懒人漫说] 公众号,分...转载 2018-06-05 15:41:12 · 1825 阅读 · 0 评论 -
C++智能指针 shared_ptr 与 weak_ptr 原理
注:源代码摘自 GNU C++,除此之外为原创,转载请注明出处。// Copyright (C) 2007-2016 Free Software Foundation, Inc.//// This file is part of the GNU ISO C++ Library. 一、weak_ptr 的 lock() 函数原理/* 当每次有新的 shared_ptr 生成时,会增加 _Sp_原创 2017-12-12 15:46:56 · 4228 阅读 · 0 评论