Linux命令行非法字符处理

2021-07-04
阅读 1 分钟
2.2k
Linux命令中像$、&这样的属于非法字符,如果只想在命令里面将这些特殊字符作为一般的符号显示怎么办?需要使用引用,Linux 中有三种引用方法。

Linux防火墙相关命令

2021-07-04
阅读 1 分钟
2.6k
查看状态、开启、重启、关闭firewalld.service服务 {代码...} 查看防火墙规则 {代码...} 查询、开放、关闭端口 {代码...}

CentOS7安装中文字体

2021-07-01
阅读 2 分钟
14k
用DevTools调试虚拟机中的headless模式的chromium时发现调试窗口显示的都是□□□(除了英文字符),一查发现是因为虚拟机中的CentOS自带的只有英文字体,不包含中文字体,要显示中文字符需要我们自己安装中文字体。

调整VirtualBox虚拟磁盘VDI文件空间大小

2021-06-23
阅读 5 分钟
4.1k
之前,使用 VirtualBox 创建了一个 CentOS 虚拟机,划分了 40GB 的磁盘空间,用的是动态分配存储的方式,文件系统为 LVM。后来发现磁盘容量不够用了。经过一番折腾,终于给 VirtualBox 的虚拟机增加了虚拟磁盘容量,并让 CentOS 的 LVM 将其利用上。特此记录一下。

C++11的condition_variable实现WaitForSingleObject功能

2021-04-24
阅读 3 分钟
2.8k
在多线程程序开发中,我们有时会希望等待其他线程结束后在继续执行某些任务。比如常见的,主线程需要等待其他所有子线程结束后再结束程序。在Windows下我们一般使用WaitForSingleObject,或者WaitForMultipleObjects来实现,它们都会等待Object被设置为有信号时才返回的。这样我们在主线程结束的地方wait,在子线程结束...

Linux命令行参数解析——getopt_long

2021-04-18
阅读 3 分钟
2.3k
在linux中,一切皆文件,所有的可执行程序都可以通过命令行启动,程序启动时通常都会带上各种参数以控制程序的行为。所以解析命令行参数通常是一个可执行程序的第一步,下面就来介绍下经常用到的命令行参数的解析函数——getopt_long。

CMake编译遇到这种ABI不兼容问题不要慌

2021-04-05
阅读 1 分钟
6.7k
最近,在Linux下使用CMake编译程序的时候遇到一个问题,特此做一个记录。事情是这样的,我编译的程序使用了2个第三方库,在写好CMakeLists后,启动编译,然后就报链接错误,一直报一堆找不到定义。类似这样的一堆: {代码...} 我仔细检查代码和CMakeLists,各种修改尝试无果。最后,在同事和搜索引擎的帮助下终于找到问...

C++大厂面试真题

2021-04-03
阅读 3 分钟
1.7k
map和set区别在于:map中的元素是key-value(键-值)对:关键字起到索引的作用,值则表示与索引相关联的数据;set是关键字的简单集合,set中的元素都只包含一个关键字。

《More Effective C++》总结笔记(三)

2021-03-07
阅读 4 分钟
1.4k
80-20法则说:一个程序80%的资源用于20%的代码身上。是的。80%的执行时间花在大约20%的代码身上,80%的内存被大约20%的代码使用,80%的磁盘访问动作由20%的代码执行,80%的维护力气花在20%的代码上面。

青蛙跳问题为什么是斐波那契数列

2021-02-15
阅读 3 分钟
1.7k
首先,我们考虑最简单的情况,如果只有一级台阶,那显然青蛙只有一种跳法。如果只有二级台阶,那么青蛙就有两种跳法,一种是每次跳一级,总共跳二次,另一种就是直接跳二级。

《More Effective C++》总结笔记(二)——异常

2021-02-05
阅读 3 分钟
1.2k
简单来说就是,当有资源可能在函数抛异常时而无法释放,这时可以将资源封装到对象内(RAII),利用对象的析构函数来自动释放资源,这样即使有exceptions发生,也不会有资源泄露。

C++程序性能优化指南

2021-01-31
阅读 1 分钟
3.6k
《More Effective C++》书中效率部分第一条就是80—20准则。说得是——大约 20%的代码使用了 80%的程序资源;大约 20%的代码耗用了大约 80%的运行时间;大约 20%的代码使用了 80%的内存。因此,一些简单的优化也能显著提高程序性能。

PC客户端离线安装包和下载器安装包的优劣点

2021-01-24
阅读 1 分钟
2.2k
离线安装包最大的优点是安装快(只涉及解压),但其实你从官网下载离线安装包的用时和你用下载器下载安装的用时是理论上来说是差不多的。只是离线安装包的耗时主要在浏览器(或者其他渠道,比如360软件管家),下载器主要耗时在我们安装程序中。

c++关键字typeid

2021-01-15
阅读 2 分钟
3.4k
type_info的成员函数name返回类型的C-style字符串,但这个返回的类型名与程序中使用的相应类型名不一定一致,其返回值的实现由编译器决定,标准只要求每个类型返回的字符串是唯一的。

一文读懂C++内存对齐

2021-01-10
阅读 2 分钟
2.5k
64位操作系统意味着其cpu拥有更大的寻址能力。理论上来说,其性能相比于32位操作系统会提升1倍。但是这也需要在64位操作系统上运行的软件也是64位的。

《More Effective C++》总结笔记(一)——基础议题、操作符

2020-12-25
阅读 3 分钟
1.3k
Pointers和references之间的另一个重要差异就是,pointers可以被重新赋值,指向另一个对象,reference却总是指向(代表)它最初获得的那个对象。

C++11拾穗

2020-12-23
阅读 8 分钟
1.5k
C++11新关键字alignas:指定对齐大小alignof:获取对齐大小decltypeauto(重新定义):可作为返回值类型后置时的占位符static_assert:静态断言using(重新定义):类型别名或者模板别名noexcept:声明函数不可以抛出任何异常export(弃用,不过未来可能留作他用)nullptrconstexpr:可在在编译期确认的常量表达式thread_local...

c++11强化知识点

2020-11-15
阅读 4 分钟
1.5k
c++11提供了std::initializer_list,将使得类对象的初始化也可以和普通数组或者POD数据一样使用初始化列表的方式。只要为类对象提供初始化列表构造函数即可。

查找代码中所有中文字符的正则表达式

2020-11-06
阅读 1 分钟
4.2k
所有中文^((?!(\*|//)).)+[\u4e00-\u9fa5]排除注释(".[\u4E00-\u9FA5]+)|([\u4E00-\u9FA5]+.")

解决github无法访问的问题,亲测有效。

2020-10-16
阅读 2 分钟
16.8k
最近发现github突然打不开了。经过一番搜索,终于找到一个改host的方法使得可以正常打开github,而且发现打开速度比之前还快。大家也可以试试。

VSCode C++开发环境配置文件(Windows&Mac)

2020-10-06
阅读 4 分钟
2k
Windows中使用MSVC来编译源文件一定要通过VS提供的Developer Command Prompt(开发人员命令提示)工具来打开。

iOS备忘录

2020-04-30
阅读 6 分钟
2.2k
年前加过年这段时间,公司的项目时间紧非常忙,加上自己在做一个iOS的小项目,下班和周末时间就基本没有休息了,这样博客也就懈怠了。 这里就稍稍总结了一些我写这个小项目时候用上的一些代码片段。一来是给自己做个备忘,二来分享出来希望对大家也有帮助。 {代码...} {代码...} {代码...} {代码...} {代码...} {代码......

解决xib自定义tableFooterView一个神奇的bug

2020-04-19
阅读 2 分钟
2.2k
最近看视频学习,做一个demo的时候碰到一个神奇的bug,后来经过各种搜索、调试和修改代码虽然把这个bug解决了,但不知道为什么。这里打算把这个过程分享出来,给大家做参考顺便也求大神来指导下。

iOS懒加载不起作用的原因

2020-04-11
阅读 1 分钟
1.9k
iOS开发中对于实例变量有一个常用的方法就是懒加载,也就是说在程序启动的时候不去加载这个实例变量,只有运行到需要用到这个变量时,再去实例化它。

《人月神话》补遗笔记

2020-03-15
阅读 2 分钟
904
在系统设计中,概念完整性应该是最重要的考虑因素。也就是说,为了反映一系列连贯的设计思路,宁可省略一些不规则的特性和改进,也不提倡独立和无法整合的系统,哪怕它们其实包含着许多很好的设计。

请保持谦卑!——读《人月神话》有感

2020-03-15
阅读 4 分钟
2.5k
小brooks的《人月神话》这本书在软件工程管理领域畅销40年,我看的是40周年中文纪念版。相比于原版增加了一些作者根据今天软件工程管理现状添加的一些新的观点与评论,看看哪些过时了,哪些依然有效。另外还附录了一些名人以及读者对本书的评论。整体来说,本书的主线——人月神话、没有银弹在现今的软件工程管理领域依然...

重构,第一个案例(C++版)——运用多态取代与价格相关的条件逻辑

2020-02-23
阅读 6 分钟
2k
经过上一篇文章——重构,第一个案例(C++版)——分解并重组Statement()中的重构,我们的程序已经有了很大的进步了。但,我们重构的步伐并不能停歇下来。因为,很快客户就开始嘀咕起新需求了。让我们看看这次客户想要些什么。

重构,第一个案例(C++版)——分解并重组Statement()

2020-02-23
阅读 8 分钟
3.1k
在上一篇文章——重构,第一个案例(C++版)——最初的程序,我们已经实现了一个影片出租程序的最初版本。我们也分析了,这个版本的程序虽然能跑起来,没有bug。但是,明显的,程序中有一些“代码的坏味道”。为了重构它,我们首先写出了一段测试代码,方便我们重构的时候进行测试。

重构,第一个案例(C++版)——最初的程序

2020-02-23
阅读 4 分钟
2.5k
这样的总结比较抽象,这里我将写一个系列文章,主要想通过案例来让大家具体的感受一下小步重构的魅力。使用的例子也是Martin Fowler《重构》一书中第一章的案例。不过书中案例是用Java写的,这里我将其改为了C++程序。希望这样对C++程序员能更好的理解重构。

找出那些代码里的坏味道吧——《重构》笔记(一)

2020-01-21
阅读 4 分钟
2.7k
重构起源于smalltalk,发扬于java和C#,它们都有成熟的重构工具。有一种说法是,《重构》和设计模式是java行业的圣经。我个人觉得,重构就像修缮忒休斯之船一样,只是我们是将船上的木板全部替换成了钢板。一个程序员如果看自己一年前写的代码而没有重构的念头,那么这个程序员可能这一年没有什么进步,当然也可能这块代...