c++
文章平均质量分 87
Linux高级开发
一路追随Bug~~
展开
-
C++后台开发面试题总结(涉及C++基础、多线程多进程、网络编程等)
C++后台开发面试题总结(涉及C++基础知识、多线程多进程、TCP/IP网络编程、Linux操作、数据结构与算法)因巩固知识体系,面试,梳理以往看到过的知识点,故总结如下相关题目,题目答案请自行google baidu,这里只提供题目。一、C++基础知识面试题总结1、多态的实现2、说说C/C++的区别3、const关键字4、说说malloc/free 和 new/delete区别5、指针和引用的区别6、C++中堆和栈的区别7、关键字static8、在C++程序中调用被原创 2022-03-11 21:06:31 · 6992 阅读 · 1 评论 -
c/c++后台开发前景到底如何?该如何提升?
最近听到很多人都在讲:在这个Java热火朝天,人工智能高能吹捧的市场,c/c++开发人员还有人要?小编想说的是:有,而且很多企业都是有在招c/c++开发人才。只是IT这个行业:普遍高端稀缺,中端平衡,低端饱和。后台开发第330讲|c/c++开发方向如何选择,嵌入式,qt/mfc,游戏开发,后端开发| c/c++为什么开发方向多样?|为什么不推荐 qt/mfcc/c++的难度系数比其他语言都高。所以愿意去选择他的人数一年比一年少。如果时间充足,对c/c++比较感兴趣的伙伴 ,可以原创 2021-12-02 16:42:00 · 7549 阅读 · 0 评论 -
Linux虚拟内存管理,MMU机制详解
相关教程:后台开发第286讲|【Linux内核篇】剖析Linux内核MMU详解|1、物理内存组织结构 2、虚拟地址空间划分 3、内核与用户空间布局 4、内存映射原理机制MMU现代操作系统普遍采用虚拟内存管理(Virtual Memory Management)机制,这需要处理器中的MMU(Memory Management Unit,内存管理单元)提供支持。首先引入 PA 和 VA 两个概念。PA如果处理器没有MMU,或者有MMU但没有启用,CPU执行单元发出的内存地址将直接传到.原创 2021-08-21 17:43:15 · 2680 阅读 · 0 评论 -
Android音视频开源项目系列1.0
项目Android平台PlayerSDKhttps://github.com/JeffMony/PlayerSDK.git这是一个专注音视频播放器的库,目前还在不断优化中,主要功能如下:支持ijkplayer 和 exoplayer 两种播放器 支持进度条和seek功能支持二维码扫描网址功能 支持循环播放的功能支持倍速的功能 支持针对HLS Master视频的切换清晰度功能添加Player实例监控方法 支持GLSurfaceView渲染视频播放时调整声音大小 播放视频加原创 2021-08-05 16:18:30 · 355 阅读 · 0 评论 -
微信支付为什么需要软件架构
大纲 背景 线上效果指标 什么是软件架构 为什么需要软件架构 从零到一构建支付跨平台软件架构 1.抽象业务流程 2.加入路由机制 3.管理网络请求 4.规范数据传递 总结 背景作为一个重要业务,微信支付在客户端上面临着各种问题。其中最核心问题就是分平台实现导致的问题: iOS 和安卓实现不一致 容易出 Bug 通过沟通保证不了质量 扩展性差,无法快速响应业务需求 需.原创 2020-09-09 14:00:00 · 460 阅读 · 0 评论 -
C++ 虚函数表解析,一篇就够
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的...原创 2019-07-06 15:17:23 · 196 阅读 · 0 评论 -
C#调用DLL的几种方法,包括C#调用CC++C#DLL
c#中dll调用方法一、 DLL与应用程序动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一,打开Windows系统文件夹,你会发现文件夹中有很多DLL文件,Windows就是将一些主要的系统功能以DLL模块的形式实现。动态链接库是不能直接执行的,也不能接收消息,它只是一个独立的文件,其中包含能被程...原创 2019-07-06 11:11:09 · 717 阅读 · 0 评论 -
C++ 后台开发面试时一般考察什么?
带领研发团队多年,现对应试者在面试中锁需要准备的知识进行总结,主要涉及C++/C/Golang语言基础,数据结构与算法,TCP/IP协议,网络编程,Linux。虽然面试技巧和心态也很重要,但这里只有24K纯技术干货,期望大家能够准备好,进入我司。点赞后,收藏吧!C和C++语言基础参考书籍:《C++ primer》,《effective C++》,《STL源码解析》,...原创 2019-07-05 16:35:58 · 445 阅读 · 0 评论 -
C++ 如何避免内存泄漏,一篇就够
前言近年来,讨论 C++ 的人越来越少了,一方面是由于像 Python,Go 等优秀的语言的流行,另一方面,大家也越来越明白一个道理,并不是所有的场景都必须使用 C++ 进行开发。Python 可以应付大部分对性能要求不高的场景,Go 可以应付大部分对并发要求较高的场景,而由于 C++ 的复杂性,只有在对性能极其苛刻的场景下,才会考虑使用。那么到底多苛刻算是苛刻呢?Go 自带内存管理,也就...原创 2019-07-06 23:10:04 · 502 阅读 · 0 评论 -
C++面试校招真题题库
C++工程师校招面试题库导读一、学习说明面试题库中不包括面试中问到的项目,hr 面以及个人技术发展类。⚫ 项目是比较个性化的,没办法作为一个题库来给大家参考,但是如果你有一个非常有含 金量的项目的话,是非常加分的,而且你的项目可能也会被问的多一些;⚫ hr面的话一般来说技术面通过的话个人没有太大的和公司不符合的问题都能通过;⚫ 技术发展类的话这个就完全看自己啦,主要考察的会...原创 2019-07-18 17:23:04 · 1312 阅读 · 0 评论 -
程序员的吐槽大会,动机何在?
最近看了比较多的职言,很多都是吐槽现在公司加班严重的,工资少的,公司项目不行自我技术能力得不到提升的。很多很多诸如此类的吐槽。吐槽归吐槽,但是你会发现很少有人因为接受不了公司的种种不满而直接走人的?为什么?第一,可能公司确实有部分福利还可以,对比之下,优大于弊。也就是随便吐槽口嗨一下。第二,自己没有能力。目前的公司都是经过拼抢进来的,对面试会有惧怕感。既然现在的公司或许确实不好,但...原创 2019-07-12 16:35:08 · 1603 阅读 · 0 评论 -
C++ 对象深度探索
1.封装的成本首选,我门来看一下C语言中的结构体,当然也可以看做事一个“封装”,我称为它结构体的封装,其实就是里面包含了很多的元素。#include<iostream>using namespace std;typedef struct Md{ int num; char name[256];}MD;void MdPrint(const MD* md){ p...原创 2019-07-17 15:02:44 · 210 阅读 · 0 评论 -
浅谈c++中的开源框架类目--分享三(并发性)
这个系列会分享一些c++中的开源框架。主要从TCP协议栈、框架、并发性、数据库、国际化、压缩、日志、多媒体库、序列化、XML库、脚本、Json库、数学库、安全、WEB应用框架、网络库、异步事件等方面来分享。分享的内容不仅限于自己来写,有会借鉴网上大牛们的一些文章与大家分享。之前我们讲了TCP和框架,今天我们来讲一讲其并发性。1.用OpenCL的c++GPU计算库Boost.Comput...原创 2019-07-25 16:55:24 · 516 阅读 · 0 评论 -
GitHub干货系列:c++资源整理(含部分Java、安卓、Python等)
GitHub用户欢迎自取。2019BAT互联网企业工作岗位(含职位内容、岗位技术要求、工作位置等)https://github.com/0voice/enterprise_job_recommend2019年最新总结,阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总。https://github.com/0voice/interview_internal_r...原创 2019-08-01 14:40:13 · 381 阅读 · 0 评论 -
“简历造假,面试坦白”如果你是面试官给过吗?
最近公司想招一名做c/c++Linux服务端开发的开发。要求是:1.3年以上Linux后台开发相关经验。2.精通tcp/ip协议栈。对OS和体系结构由深刻理解。3.熟悉Linux内核及各基础模块,有提交内核patch优先。4.有开源项目贡献经验优先,对技术新动向有敏锐的嗅觉。5.会分布式、高并发优先。学历:统招本科 开的是13k-25k。经过简历筛选之后,确定了几名...原创 2019-07-10 19:30:31 · 10158 阅读 · 2 评论 -
学习成为一名优秀的架构师
对工作多年的程序员而言,日后的职业发展无非是专精技术,转型管理,晋升架构师三种选择。成为一名优秀的架构师,是大多数技术人的追求。想要做架构,空有一身技术是远远不够的,知识的深度和广度,往往会决定一个架构师的架构能力。而这些知识,从你踏入 IT 行业那一刻起,甚至更早就应该开始储备了。我看到很多人,做了 7、8 年程序员,仍然停留在「码农」的阶段,平时工作节奏太快,很难有机会系统学习架构,也...原创 2019-07-10 19:23:58 · 334 阅读 · 0 评论 -
多此一举, C实现 try-catch
在做NtyTcp的时候,有一些,就想用c来实现一套try-catch异常处理子系统。不讨论C语言本身为什么不加try-catch,每个开发的朋友对于这个问题,都能说出一大堆的理由。其实我也是不太喜欢强行在c中加入一个try-catch。就像把try-catch的原理跟自己的体会写出来。首先我们来看看,try-catch的使用情景。1234567try { throw Excep;} catc...原创 2018-05-28 09:16:06 · 913 阅读 · 0 评论 -
EasyDarwin实现说明之添加模块
在Darwin的架构中一个很重要的概念就是模块(Module),我们在原生Darwin系统上加入了两个模块(Module),是MyBCInteractModule和MyFileUploadModule,每个模块都要提供两个函数,Main和dispatch函数,服务器启动时(QTSServer)会调用Main函数完成对该模块的初始化;Dispatch是注册给服务器的一个回调函数,服务器通过该函数分发...原创 2018-05-29 11:13:27 · 780 阅读 · 0 评论 -
高可用可伸缩架构实用经验谈
原作者:李道兵移动互联网、云计算和大数据的成熟和发展,让更多的好想法得以在很短的时间内实现为产品。此时,如果用户需求抓得准,用户数量将很可能获得爆发式增长,而不需要像以往一样需要精心运营几年的时间。然而用户数量的快速增长(尤其是短时间内的爆发式增长),通常会让应用开发者有些吃不消,不得不面临一些严峻的技术挑战:如何避免因为单台机器当机导致服务不可用;如何避免在服务容量不足时,用户体验下降,等等。在...原创 2018-06-05 14:14:56 · 393 阅读 · 0 评论 -
自己动手实现Epoll
Epoll是Linux IO多路复用的管理机制。作为现在Linux平台高性能网络IO必要的组件。内核的实现可以参照:fs/eventpoll.c .为什么需要自己实现epoll呢?现在自己打算做一个用户态的协议栈。采用单线程的模式。https://github.com/wangbojing/NtyTcp,至于为什么要实现用户态协议栈?可以自行百度C10M的问题。由于协议栈做到了用户态故需要自己实现...原创 2018-05-30 09:11:50 · 818 阅读 · 0 评论 -
去中心化的网络设计 — P2P的实现
随着区块链的越来越火,去中心化的网络设计再次被拿到技术人员面前。在这里我使用非常通俗的语言,帮大家来理解去中心化的网络设计的基础—网络穿透。再使用代码来实现穿透。如果阐述不到位的地方,欢迎大家抛砖。 在有中心化服务器的网络中,客户端,服务器,网关构成网络拓扑图。如下图1所示:由于后续出现的名词概念很多,先约法三章,在这里统一一下称呼:所有的终端机器成为客户端,不同客户端使用大写字母区分(A...原创 2018-05-31 11:02:10 · 5140 阅读 · 2 评论 -
Linux 新手必会的21条命令合集
Linux初期的学习曲线有些陡峭,所以作为一名初学者,学会自娱自乐是非常重要的。先来看13个有趣的小命令。1.sl 命令你会看到一辆火车从屏幕右边开往左边。。。。。。安装 $ sudo apt-get install sl运行 $ sl命令有 -alFe几个选项,-a An accident seems to happen. You'll feel pity for people who cry ...原创 2018-06-14 09:57:54 · 600 阅读 · 0 评论 -
使用Bugzilla,你肯定会遇到的坑。
最近和几个朋友一起做用户态协议栈开源项目 NtyTcp ,纯业余爱好,个人情怀。刚刚开始做有好多的Bug,故搭建了一个Bugzilla,用来上传Bug的。有几个开发朋友想在 bug.ntytcp.com提交bug,不能注册,因为不能发邮件。至于为什么不能发送邮件?因为阿里云把25端口封了,使用smtp不能发送。使用465端口发送,发现发不出来,又找不到原因。硬着头皮比Bugzilla的源码看了一下...原创 2018-06-01 09:36:32 · 1559 阅读 · 0 评论 -
Linux 启动过程分析
关于开源软件最古老的笑话是:“代码是自具文档化的self-documenting”。经验表明,阅读源代码就像听天气预报一样:明智的人依然出门会看看室外的天气。本文讲述了如何运用调试工具来观察和分析 Linux 系统的启动。分析一个功能正常的系统启动过程,有助于用户和开发人员应对不可避免的故障。从某些方面看,启动过程非常简单。内核在单核上以单线程和同步状态启动,似乎可以理解。但内核本身是如何启动的呢...原创 2018-06-15 09:24:29 · 517 阅读 · 0 评论 -
Linux shell 中的那些小把戏
我日常使用Linux shell(Bash),但是我经常忘记一些有用的命令或者shell技巧。是的,我能记住一些命令,但是肯定不会只在特定的任务上使用一次,所以我就开始在我的Dropbox账号里用文本文件写下这些Linux shell的小技巧,现在我决定共享它给你。这个表我以后还会更新。记住,这里的一些贴士需要在你的Linux发行版上安装额外的软件。在bash中检查远程端口是否打开:echo &g...原创 2018-06-19 15:02:28 · 155 阅读 · 0 评论 -
Linux 命令汇总
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱...原创 2018-06-20 16:06:26 · 188 阅读 · 0 评论 -
C++ 高性能服务器网络框架设计细节(上)
GitChat 作者:范蠡 原文:C++ 高性能服务器网络框架设计细节 导读:该文建议精度目录C++ 高性能服务器网络框架设计细节(上)C++ 高性能服务器网络框架设计细节(下)前言这篇文章我们将介绍服务器的开发,并从多个方面探究如何开发一款高性能高并发的服务器程序。需要注意的是一般大型服务器,其复杂程度在于其业务,而不是在于其代码工程的基本框架。大型服...原创 2018-12-20 15:11:46 · 705 阅读 · 0 评论 -
大专程序员毕业五年税后18K,想进BAT,网友:吃shi都赶不上热的
现在很多互联网公司招聘程序员,招聘要求上面都明确需要本科,并且985/211优先。现在有很多中专大专的程序员很优秀很积极。网友一:女生,92年,毕业四年,坐标深圳,目前16k的php程序员。想往大公司发展。关于待遇有好心网友评论,硕士毕业一年 BAT,和该女生待遇一样的。网友二:91年,中专学历,坐标深圳,税后工资18K,还有私活额外收入1-4W。这待遇还是有部分985/211...原创 2019-03-13 16:39:38 · 13104 阅读 · 10 评论 -
为什么 C 语言仍然占据统治地位?
还C语言五十年来一直是软件开发的一种主力语言。 以下是它在如今的2019年与C ++,Java,C#,Go,Rust和Python抗衡的方式。以下为译文:没有什么技术可以应用长达50年之久,除非它真的比大多数其他东西都要好用——对于一种计算机行业的技术来说尤其如此。自1972年诞生以来,C语言一直保持生龙活虎的状态,时至今日它仍然是我们用来搭建软件世界的基础建筑材料之一。但有时一种技术...原创 2019-07-01 14:33:24 · 199 阅读 · 0 评论 -
OPENFLIXR2.0 你能认真对待的微服务
现在微服务概念特别火热,最近无意×××看到一个不错的开源项目,OpenFLIXR 2.0,ALL-in-ONE,可以细细体会成熟微服务的项目。之前有个1.0 的版本,就是单一服务。这个开源的项目,是一个集成的项目,并不仅仅开放源代码,并且直接开放IMG,支持VMware,VirtualBox,KVM等虚拟化,IMG里面直接能跑起来。这样的做法,免去的很多部署的问题,IMG直接down可以快速部署。...原创 2018-06-03 14:21:52 · 619 阅读 · 0 评论