C++
文章平均质量分 70
大飞飞鱼
做自己喜欢的事情,任凭别人去说吧
展开
-
segfault信息分析:segfault at a ip 00007f4220309664 sp 00007fff580042b0 error 4 in librt-2.17.so[7f422030
linux有一个工具 addr2line命令,可以帮助定位排查segfault,本文示例了如何使用这种技术来定位访问违规的问题。原创 2023-11-30 22:59:23 · 1290 阅读 · 1 评论 -
C 语言环境变量函数 说明
C语言操作环境变量有getenv putenv setenv和unsetenv等函数,现在一一说明如下原创 2022-05-18 01:24:47 · 1743 阅读 · 0 评论 -
C++ 11 匿名函数 (Lambda表达式)说明
新的C++语言已经向javascript灯脚本语言学习了,支持匿名函数,好在笔者对javascript等脚本语言也比较熟悉,所以理解C++的匿名函数也比较容易。匿名函数是指在一个函数体内的某个功能需要一个定义函数,但是又不想去命名这个函数的场合下现场即时定义的表达式,也就是指Lambda表达式,用于简化编程工作。原创 2022-05-17 11:41:17 · 863 阅读 · 0 评论 -
std::string 直接操作其内存写入数据的方法
std::string 直接操作其内存写入数据的方法原创 2022-05-11 23:29:16 · 1876 阅读 · 0 评论 -
C++ R 原始字符串 R 表示方法,R是原始字符串
新的C++标准可以在代码里嵌入一段原始字符串,该原始字符串不作任何转义,所见即所得,这个特性对于编写代码时要输入多行字符串,或者含引号的字符串提供了巨大方便。原始字符串的开始符号 :R"( , 原始字符串的结束符号:)"。原创 2022-05-02 12:32:34 · 17896 阅读 · 0 评论 -
incompatible types when initializing type ‘float32x4_t’ using type ‘float32x2_t’
在编译 libopus时,出现 celt/arm/celt_neon_intr.c:137:14: error: incompatible types when initializing type ‘float32x4_t’ using type ‘float32x2_t’ SUMM = vmlaq_lane_f32(SUMM, YY[0], vget_low_f32(XX[0]), 0);通过修改arm_neon.h文件中的vmlaq_lane_f32宏定义来解决问题。原创 2022-03-23 19:05:17 · 2351 阅读 · 0 评论 -
GCC详解的-Wl选项说明
在GCC编译程序时,由于GCC命令不经能够编译,也能够链接程序,GCC链接程序是通过ld命令实现的,如何将GCC的命令行参数传递给ld命令呢,这就是通过-Wl,来实现的。格式如下:gcc -Wl,param1,param2,param3,...在调用ld命令时,会等效于如下:ld param1param2param3注意:-Wl, 后的逗号(,)必不可少,如果要传递多个参数,参数间用,分隔-Wl,-Bstatic指定后续ld在处理 -l 参数来链接库文件的链接方式首...原创 2022-03-13 23:36:47 · 7525 阅读 · 0 评论 -
nlohmann/json 的用法示例
nlohmann/json 是一个C++实现的JSON解析器,使用非常方便直观。由于查看文档篇幅过长,不便于迅速阅读抓重点。而且,所举例的某些用法实践上其实比较少用到,而某些实践上常用到的一些用法,官网却缺例子。所以自己简要总结了一下它的主要用法,并加上自己写的示例,希望能给到新接触该库的朋友一些帮助。原创 2022-01-06 09:39:19 · 6917 阅读 · 0 评论 -
unicode_to_utf8转换函数源码
unicode to utf8转换函数的源代码,适合所有操作系统,不需要ICONV库。linux 实现UNICODE到UTF8的转码函数,可以替代Windows里的MutiByteToWideChar 函数原创 2021-12-29 14:52:46 · 1325 阅读 · 0 评论 -
SSL 服务器与客户端样本代码
本文为了方便进行SSL编程参考而整理,SSL编程调用的大多数流程就如如下样本代码,通过本样本代码可以比较快的测试SSL相关API。原创 2021-08-14 13:53:12 · 2762 阅读 · 0 评论 -
高性能异步 I/O 模型库 libuv 设计思路概述
使用libevent这个库很长时间了,libevent虽然比较成熟,但由于这个库考虑到多线程的问题,里面的线程同步锁太多性能不是很好,同时问题也发现不少,尤其是在Linux下,时常莫名崩溃,很难找到原因。好在libuv现在已经很成熟了,经过使用发现性能非常优秀,有必要扩大使用。 libuv原来是为了Node.js而写的一个跨平台支撑库。它是围绕事件驱动的异步I/O模型...原创 2020-01-13 00:17:46 · 1573 阅读 · 0 评论 -
Websocket Frame 格式(Websocket 数据帧格式)
今天,公司要求在媒体服务器上实现websocket-flv播放,即通过Websocket技术来实现flv播放。笔者以前曾用Websocket协议实现过一个百万级别的即时通信服务器,但到今日已有时日,对Websocket协议的帧格式是记不清楚了,今日正好重新复习一下,做笔记如下,已备忘。 浏览器通过GET方式发送Websocket请求,服务器通过判断其请求头部是否包含 ...原创 2019-12-29 23:29:31 · 9345 阅读 · 0 评论 -
linux DWORD的正确定义
在进行C语言程序移植时,有时候要把Windows下的程序移植到Linux下,在Windows平台上通常是用VC++开发,在Linux上通常使用GCC编译代码。在Windows平台上,大家一般用VC来编译代码,VC天然的整合了Windows SDK,在VC里有一个数据类型DWORD,它其实不是一个C语言内建的类型,它是由typedef 创建的类型,最早的定义是在WindowsSDK定...原创 2019-12-05 19:35:22 · 5984 阅读 · 1 评论 -
linux 共享内存 shm_open ,mmap的正确使用
在linux系统开发当中,时常需要在多个进程之间交换数据,在多个进程之间交换数据,有很多方法,但最高效的方法莫过于共享内存。 linux共享内存是通过tmpfs这个文件系统来实现的,tmpfs文件系的目录为/dev/shm,/dev/shm是驻留在内存 RAM 当中的,因此读写速度与读写内存速度一样,/dev/shm的容量默认尺寸为系统内存大小的一半大小,使用df -h命令可以看到。但实...原创 2019-11-06 13:18:49 · 39009 阅读 · 3 评论 -
CentOS Linux 6.x/7.x/8.x及更高版本上安装 GCC 7.4 安装步骤
CentOS 6.10 安装完成以后,查看GCC的版本,发现是gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC),这个版本的GCC已经比较老了,对目前新的C++特性支持得不是很好,本文将笔者自己安装GCC的流程记录下来,便于以后参考。1)下载GCC 7.40 源代码http://ftp.gnu.org.ua/gnu/gcc/g...原创 2019-11-03 16:21:33 · 2068 阅读 · 2 评论 -
基于阿里云Aliddns动态域名解析的客户端PHP实现与服务器端(包含C与PHP)实现
很多朋友的公司或家里有一台上网的机器,这些上网的机器有些能够获得公网IP,但是这些IP通常不固定。 大家都想充分利用这些上网设备的网络能力来搭建服务器环境,但由于IP地址老是变化,因此,即使是给这些机器分配了域名,也时常无法访问。于是,很多人想到了动态域名解析,即域名不变,IP地址变化,域名解析记录能够跟随IP地址变化,目前市场上有几种商业的解析方案实现,例如花生壳,...原创 2019-05-26 22:20:59 · 4871 阅读 · 2 评论 -
非常有用的的C/C++框架和库的收藏
值得学习的C语言开源项目- 1. WebbenchWebbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.c转载 2017-09-02 21:26:35 · 412 阅读 · 0 评论 -
如何实现支持大文件的高性能HTTP文件上传服务器
HTTP文件上传是做Web开发时的常见功能,例如上传图片、上传影片等。实现HTTP文件上传也比较简单,用任何Web端的脚本都可以轻松实现,例如PHP、JSP都有现成的函数或者类来调用。但笔者最近在做项目时遇到了一个大问题,项目需要上传视频文件,这些视频文件的尺寸一般大于2GB,用PHP开发时,将服务器端的上传尺寸设置得足够大,但用Chrome、FirFox等浏览器上传时,经常出...原创 2017-08-12 21:48:12 · 26610 阅读 · 1 评论