DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  C++/C

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 47 下一页

摘要:时至2018年的今天,C++ 在互联网服务端开发方向依然占据着相当大的份额;百度,腾讯,甚至以java为主流开发语言的阿里都在大规模使用C++做互联网服务端开发,而这恰恰是本文想要讨论的范畴。 第1章 C++协程近况简介 协程分两种,无栈协程(stackless)和有栈协程(stackful),前者 阅读全文
posted @ 2021-04-02 16:12 DoubleLi 阅读(603) 评论(1) 推荐(0) 编辑

摘要:当服务器close一个连接时,若client端接着发送数据,根据TCP的规定会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。 又或者当一个进程向某个已经收到RST的socket执行写操作是,内核向该进程发送一 阅读全文
posted @ 2021-03-18 11:06 DoubleLi 阅读(587) 评论(0) 推荐(0) 编辑

摘要:现象: linux下C++开发的网络服务器程序,在页面刷新时有时候会出现进程退出的情况。使用gdb调试,发现是系统发送了SIGPIPE信号,导致进程退出的。 规避或解决方法: 最根本的解决办法是提高socket编程recv或send函数的健壮性。对返回值做全面的稳妥的处理。 最有效的规避方法是在进程 阅读全文
posted @ 2021-03-18 11:03 DoubleLi 阅读(541) 评论(0) 推荐(0) 编辑

摘要:值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简 阅读全文
posted @ 2021-03-02 09:51 DoubleLi 阅读(1372) 评论(0) 推荐(0) 编辑

摘要:协程库state threads library(以下简称st)是一个基于setjmp/longjmp实现的C语言版用户线程库或协程库(user level thread)。 这里有一个基本的协程例子 http://www.csl.mtu.edu/cs4411.ck/www/NOTES/non-lo 阅读全文
posted @ 2021-02-24 09:58 DoubleLi 阅读(430) 评论(0) 推荐(0) 编辑

摘要:<一>下载最新版的WinDbg工具,有两种方式,假设我的电脑系统为Win 10,Windows 10必须周年更新版本哦,那么可以去这个官网下载。 有两种版本:第一种版本是在微软应用商店下载的WinDbg Preview版本,这个版本UI更加好看,如果你有需求可以直接在这个网站下载,也可以下载exe版 阅读全文
posted @ 2021-02-02 17:25 DoubleLi 阅读(2172) 评论(0) 推荐(0) 编辑

摘要:内存泄露查找方法 C++程序员经常不注意内存使用的关闭,虽然此类问题不会导致程序逻辑问题,但随着时间的推移,内存占用量越来越多,最终导致程序崩掉。对服务端的程序,内存泄漏经常是致命的。 对于已经存在内存泄露的程序,可能Windbg查找内存泄露的代码。下面介绍如果通过Windbg查找内存泄露。 Win 阅读全文
posted @ 2021-02-02 17:19 DoubleLi 阅读(642) 评论(0) 推荐(0) 编辑

摘要:在大型项目中,内存泄露并不会立即crash,会使系统性能不断下降,甚至因内存耗尽而崩溃。排查起来难度也比较大,申请内存的地方很多。这里介绍的这种方法可以迅速定位问题。 下面的程序crash64,每秒会申请1M的内存,而一直都没有释放,产生内存泄露 windbg 中有个小工具 UMDH可以追踪系统每个 阅读全文
posted @ 2021-02-02 16:39 DoubleLi 阅读(312) 评论(0) 推荐(0) 编辑

摘要:使用SDK的PSAPI (Process Status Helper)中的BOOL GetProcessMemoryInfo( HANDLE Process, PPROCESS_MEMORY_COUNTERS ppsmemCounters, DWORD cb);typedef struct _PRO 阅读全文
posted @ 2021-01-29 13:53 DoubleLi 阅读(1189) 评论(0) 推荐(0) 编辑

摘要:使用场景: 自己的32位exe需要占用1.6G内存的使用,在Win7 64位环境中,由于系统内存限制,无法申请到这些内存,发生崩溃! // 我自己使用的代码模板: //第一步,进入目录 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enter 阅读全文
posted @ 2021-01-29 10:16 DoubleLi 阅读(3488) 评论(0) 推荐(1) 编辑

摘要:前言 skynet是我们游戏服务端的底层框架,当初在技术选型的时候仔细阅读过它的源码,发现它是一个C语言的工程典范。大多数游戏服务端,要么使用C++,要么使用java,使用C是非常少见的。但是skynet通过C和Lua的结合,实现了一个高效的游戏框架,C层没有多余的一堆三方库,只有紧凑的核心结构,提 阅读全文
posted @ 2021-01-12 11:50 DoubleLi 阅读(1938) 评论(0) 推荐(0) 编辑

摘要:1、连续存储 2、二维数组的行地址与列地址 1)行地址 1、二维数组中,数组名a的值,是数组a首元素a[0][0]的地址,即&a[0][0],第一行第一个元素的地址; 2、二维数组中,数组名a+1是数组a的元素a[1][0]的地址,即&a[1][0],第二行第一个元素的地址; 2)列地址 1、二维数 阅读全文
posted @ 2020-12-20 12:27 DoubleLi 阅读(2958) 评论(0) 推荐(0) 编辑

摘要:1、C++ const 常量折叠 所谓的常量折叠是编译器的一种优化技术,也就是代码编译时时 const 常量表达式直接替换成立即数。 不过需要注意的时,const 常量仍然会分配内存空间。 #include <iostream> using namespace std; int main(void) 阅读全文
posted @ 2020-12-20 11:36 DoubleLi 阅读(292) 评论(0) 推荐(0) 编辑

摘要:编译程序遇到问题 relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; 发现编译的程序引用的一个库(.a文件)是直接用./configure 编译的, 64位机器不能直接./conf 阅读全文
posted @ 2020-10-27 16:16 DoubleLi 阅读(4480) 评论(0) 推荐(0) 编辑

摘要:判断操作系统 通过使用内置的宏,可以进行操作系统判断 1.windows下内置了宏 WIN32 2.linux下内置宏 linux 3.Solaris下内置宏 __sun 编译器判断 VC编译器宏 _MSC_VER GCC/G++编译器宏 __GNUC__ SunCC编译器宏 __SUNPRO_C和 阅读全文
posted @ 2020-10-26 13:42 DoubleLi 阅读(333) 评论(0) 推荐(0) 编辑

摘要:转载:visual-studio – 如何支持vcxproj到项目的cmake? 时间: 2017-09-12 21:20:45.0标签: visual-studio visual-studio-2010 makefile cmake 译文: 来源翻译纠错 我正在开发跨平台的c项目。最初的想法是使用 阅读全文
posted @ 2020-09-22 16:43 DoubleLi 阅读(889) 评论(0) 推荐(0) 编辑

摘要:【文章摘要】简单对象访问协议(SOAP)是交换数据的一种协议规范,是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息。在实际的软件开发项目中,SOAP大多用于处理用户数据,也即实现开户、销户、改户和查户等功能。本文根据作者实际从事过的基于SOAP的项目开发,对SOA 阅读全文
posted @ 2020-07-13 18:04 DoubleLi 阅读(1077) 评论(0) 推荐(0) 编辑

摘要:void func(int i, double d, const string& s) { cout << i << ", " << d << ", " << s << endl; } int main() { thread t(func, 1, 12.50, "sample"); t.join() 阅读全文
posted @ 2020-07-08 18:14 DoubleLi 阅读(2950) 评论(0) 推荐(0) 编辑

摘要:webassembly的作用 webassembly是一种底层的二进制数据格式和一套可以操作这种数据的JS接口的统称。我们可以认为webassembly的范畴里包含两部分 wasm: 一种体积小、加载快并且可以在Web浏览器端运行的底层二进制数据格式,并且可以由C++等语言转化而来 webassem 阅读全文
posted @ 2020-06-30 16:24 DoubleLi 阅读(1157) 评论(0) 推荐(0) 编辑

摘要:volatile的介绍 volatile类似于大家所熟知的const也是一个类型修饰符。volatile是给编译器的指示来说明对它所修饰的对象不应该执行优化。volatile的作用就是用来进行多线程编程。在单线程中那就是只能起到限制编译器优化的作用。所以单线程的童鞋们就不用浪费精力看下面的了。 没有 阅读全文
posted @ 2020-06-23 15:48 DoubleLi 阅读(6779) 评论(3) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 47 下一页