CoderAndClimber
码龄11年
关注
提问 私信
  • 博客:662,957
    社区:4,340
    667,297
    总访问量
  • 111
    原创
  • 1,276,374
    排名
  • 123
    粉丝
  • 1
    铁粉

个人简介:一个小码农,个人微信公众号:清远的梦呓,欢迎关注

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2014-03-10
博客简介:

u014023993的专栏

博客描述:
学习C++过程中遇到的一些问题及解决方法,记录学习C++路上的点点滴滴
查看详细资料
个人成就
  • 获得283次点赞
  • 内容获得41次评论
  • 获得993次收藏
  • 代码片获得495次分享
创作历程
  • 6篇
    2020年
  • 45篇
    2019年
  • 11篇
    2018年
  • 27篇
    2015年
  • 83篇
    2014年
成就勋章
TA的专栏
  • HTTP
    2篇
  • MFC
    83篇
  • C++
    27篇
  • SQL Server
    1篇
  • Windows服务器
    1篇
  • TCP
    16篇
  • 网络通信
    27篇
  • Golang
    6篇
  • QUIC
    4篇
  • 编码知识
    1篇
  • 数据安全
    2篇
  • Git
    2篇
  • Linux
    8篇
  • 编程思考
    5篇
  • MySQL
    1篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

fork的坑:文件描述符继承

​最近遇到一个神奇的fork问题,坑了我2天半的时间,最后在另一个小伙伴的帮助下,找到问题根源,然后修改。此时,对于前人说的,fork的坑,也终于有点认识了。基本的软件图如下:主进程A收到云端B的命令,fork出子进程A1、A2、….、An,然后执行execv函数,打开新的可执行文件。Execv执行完成后,子进程Ai就拥有了和主进程A不同的镜像文件,这是Linux下创建新进程的典型方式。主进程A收到云端的控制信令后,通过socket与子进程Ai通信:控制Ai,收集Ai...
原创
发布博客 2020.11.15 ·
3368 阅读 ·
10 点赞 ·
0 评论 ·
14 收藏

_snprintf_s 的正确使用方式

​这次遇到的奔溃问题,和从一次奔溃谈谈strncpy_s中有异曲同工之处:程序在执行到某个点后,瞬间干干净净的退出,也没有dmp文件生成。根据环境确定了怀疑点后,在TerminateProcess函数上加断点,然后运行程序,程序在TerminateProcess上中断下来,堆栈如下(简化模型):问题出在_snprintf_s上,奔溃原因是_invalid_parameter_noinfo函数中调用了TerminateProcess函数,看意思是参数有问题。_snprintf_s的有两..
原创
发布博客 2020.09.20 ·
10008 阅读 ·
2 点赞 ·
1 评论 ·
5 收藏

strncpy_s 的正确打开方式

​最近遇到了一个奔溃问题,程序在执行到某个点后,瞬间干干净净的退出,也没有dmp文件生成。这个奔溃在指定场景下出现,于是用Windbg执行程序,准备在奔溃点进行分析。想法很好,但是在奔溃点,看不到堆栈信息。于是通过日志及问题出现场景,确定了怀疑点。但是在怀疑点,并没有看出问题。因为,我先入为主的以为,strncpy_s会做边界检测,不会越界访问及复制。根据Windbg给出的诊断信息以及咨询同事,在TerminateProcess函数上加断点,运行程序,程序在TerminateProces..
原创
发布博客 2020.09.20 ·
6498 阅读 ·
5 点赞 ·
0 评论 ·
10 收藏

尽管HTTP/3已经来了,HTTP/2也得了解啊

目录源起协议格式分帧层帧类型首部压缩交互流程Curl 查看HTTP/2浏览器查看HTTP/2其他优化HTTP/2使用率参考资料因为HTTP/1.1性能以及速度方面的问题,人们想了一系列的优化措施。当优化措施依然不能满足要求时,就需要对协议进行升级。于是,有了HTTP/2。源起HTTP/2基于SPDY。SPDY 音同SPEEDY,也就是快,如果你看过手把手带你体验 HTTP/3或者【技术】QUIC的那些事 | QUIC为什么那么快,...
原创
发布博客 2020.05.17 ·
798 阅读 ·
1 点赞 ·
2 评论 ·
0 收藏

手把手带你体验 HTTP/3

HTTP/3 是在 QUIC 基础上发展出来的,并于 2019 年发布。QUIC 存在两个版本,早期 Google 打头阵的 QUIC 称之为 gQUIC,IETF 标准化后称之为 IQUIC。gQUIC 使用 UDP 进行数据传输,但上层仍然使用HTTP/2, HTTP/2 与 UDP 之前存在一个 QUIC 层,TLS 加密过程在此层处理;而 IQUIC,直接将 TLS 集成到 QUIC 内部。之前我写了QUIC相关文章,具体见如下链接:【技术】QUIC的那些事 | QUIC为什么那么.
原创
发布博客 2020.05.14 ·
3968 阅读 ·
3 点赞 ·
0 评论 ·
8 收藏

C++程序员学习Java初感

看了一个多月的 Java 了,涉及的书籍有:《On Java 8》、《深入理解 Java 虚拟机》、《Java 并发编程的艺术》、《Manning Spring in Action 5-th Edition》以及极客时间上的《Java 并发编程实战》、《设计模式之美》两门课程,同时,也正在看《Effective Java》。从当前获取的信息来看,真的是体会到什么叫生态,什么叫 Java 的类库...
原创
发布博客 2020.05.04 ·
384 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

Linux GDB分析死锁

Linux下通过GDB分析程序死锁问题
原创
发布博客 2019.11.09 ·
1149 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Linux下通过valgrind定位程序内存问题

内存泄露、重复释放、异常释放的检测与分析
原创
发布博客 2019.11.09 ·
1737 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Windbg调试死锁

死锁的定位方法
原创
发布博客 2019.11.09 ·
833 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux CPU分析常用工具

本文内容是学习极客时间课程 如何“如何迅速分析出系统CPU的瓶颈在哪里? 的总结。如果想更有效学习,推荐极客时间的课程:Linux性能优化实战如果想更系统学习,可以阅读《性能之巅:洞悉系统、企业与云计算》以及其作者Brendan D. Gregg的网站:http://www.brendangregg.com/,Linux Performance的链接为:http://www.brendangr...
原创
发布博客 2019.10.20 ·
595 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Linux内存分析常用工具

如何快速找到Linux系统问题
原创
发布博客 2019.10.20 ·
844 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

Linux系统IO分析常用工具

本文内容是学习极客时间课程 如何迅速分析出系统I/O的瓶颈在哪里? 的总结。IO性能指标指标-工具映射图工具-指标映射图使用较多的工具分析的基本思路a. 先用 iostat 发现磁盘 I/O 性能瓶颈;b. 借助pidstat,定位出导致瓶颈的进程c. 分析进行的I/O行为:trace、perf等工具d. 结合应用程序原理,分析IO来源...
原创
发布博客 2019.10.20 ·
750 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

golang生成的火焰图torch.svg

发布资源 2019.08.02 ·
svg

Golang火焰图

文章目录火焰图1 原生 PProf 工具2 安装FlameGraph3 安装graphviz4 安装go-torch5 结果火焰图火焰图(Flame Graph)是 Bredan Gregg 创建的一种性能分析图表,因为它的样子近似火而得名。上面的 profiling 结果也转换成火焰图。Uber开源工具 go-torch可以直接读取 golang profiling 数据,并生成一个火焰图的...
原创
发布博客 2019.08.02 ·
6756 阅读 ·
3 点赞 ·
2 评论 ·
2 收藏

Golang pprof

Go tool pprof1. 简介Golang 是一个对性能特别看重的语言,因此语言中自带了 一些性能分析工具。可以生成相应的Profile(概要文件),譬如CPU Profile、Memory Profile、Block Profile、Mutex Profile、Goroutine Profile等等CPU Profile:报告程序的 CPU 使用情况,按照一定频率采集应用程序在 CP...
原创
发布博客 2019.08.02 ·
1342 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

Ubuntu安装MySQL成功后,普通用户无权访问:ERROR 1045 (28000): Access denied

Ubuntu安装Mysql很简单,但是也会遇到一些问题。我的Ubuntu版本是18.04.1,安装mysql版本是5.7。Ubuntu安装MySQL的步骤如下:1.sudo apt-get install mysql-server2.apt-get install mysql-client3. sudo apt-get install libmysqlclient-de...
原创
发布博客 2019.07.01 ·
2850 阅读 ·
6 点赞 ·
2 评论 ·
7 收藏

C++从控制台连续读取数组:while(std::cin)终止

​从控制台输入一个数组,有多难?为什么会有这个问题呢?因为在刷题时,需要测试不同的输入。程序应该能够根据输入进行相应的输出,直至按下输入结束键(Windows下为Ctrl + Z,Linux下为Ctrl + D),程序结束。这里,有两个要求: 能够获取到控制台输入的不定长数组 能够一直进行操作,直至按下输入结束键 这个问题应该是刚接触编程时就应该搞清楚的。鉴于当前的工...
原创
发布博客 2019.06.25 ·
3357 阅读 ·
2 点赞 ·
0 评论 ·
7 收藏

又踩到字符串的坑了

今天,又一次被C/C++中的字符串给坑了。当然,是自己挖的坑。听到字符串,学习C/C++的小伙伴们的第一想法是不含特殊字符的字符数组,譬如包含0-9/a-zA-Z的字符数组。维基百科对字符串的定义是:字符串(英语:string),是由零个或多个字符组成的有限序列。它是编程语言中表示文本的数据类型。而字符,维基百科是这么定义的:在计算机和电信领域中,字符(Character)是一个...
原创
发布博客 2019.05.31 ·
2619 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

CryptAcquireContext返回NTE_BAD_KEY_STATE

我们知道,通过rand函数产生的随机数安全性不高,为了保证随机数的安全性,我们一般会选择一个随机数种子,通过该种子增加破解随机数的难度。C/C++下是如下代码:#include <stdlib.h>#include <time.h>int main(){ srand((unsigned)time(NULL)); printf("%d
",ran...
原创
发布博客 2019.05.25 ·
3497 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

Windows下动态库符号命名规则

C的名称修饰规则1. 对于使用C调用协议(__cdecl)的函数,在函数名称前加一下划线,不考虑参数和返回值2. 对于使用快速调用协议(__fastcall)的函数,在函数名称前后各加一@符号,后跟参数的长度,不考虑返回值。例如extern "C" int __fastcall Test(int n)的修饰名称为@Test@43. 对于使用标准调用协议(__stdcall)d的函数,在...
原创
发布博客 2019.05.09 ·
996 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多