Skip to content

最近文章 · 第 2 页

如何配置iptables

iptables 是Linux中的网络工具,其工作在用户空间,可以用来操作内核空间的 netfilter 模块,以自由控制经过该主机的包。它替换了老版的 ipchains ,提供了更多的功能。而其后继者是 nftable ,它比 iptab...

阅读全文
通过epoll理解协程

IO多路复用 C10K问题 在互联网的最早期,网络上设备很少,那时每个连接都需要一个进程来处理。一些老的处理方式(如CGI)也沿用了多进程的思路来处理连接。但随着互联网规模快速扩大,一个服务器要同时服务的人越来越多,这也就产生了著名的C10...

阅读全文
把编程语言分为强弱类型没有意义

把编程语言分为强弱类型本来就是很蠢的分类方式,得亏初学的时候没怎么见过,不然也得被绕进去。 隐式类型转换是编程语言中的重要部分,没有它编程就会变得异常复杂,所以哪怕像Rust这样学究式的语言,也提供了 解引用自动多态 的隐式类型转换方法。 ...

阅读全文
编程语言如何实现闭包

闭包是什么 这里偷懒抄一下维基百科的定义: 在计算机科学中, 闭包 (英语:Closure),又称 词法闭包 (Lexical Closure)或 函数闭包 (function closures),是在支持头等函数的编程语言中实现词法绑定的...

阅读全文
EMOCK工作原理

EMOCK 简介 首先来简单介绍一下EMOCK,EMOCK是C和C++语言常见的MOCK库,它可以在运行时将可执行程序或动态链接库的代码替换为mock函数,以实现对函数进行打桩。其原理为修改函数入口处的代码,将其替换为跳转到mock函数的代...

阅读全文
记一次EMOCK引起的段错误异常

EMOCK简介 可以去看我的另一篇文章,介绍了EMOCK的功能和其工作原理。 发生了什么问题 在一些X86机器上,突然发现定义变量时发生了Segmentation Fault。 定位思路 思路1:堆栈溢出 通常在栈中发生了段错误,第一反应就...

阅读全文
如何配置git连接github

Git如何连接GitHub 第一步 配置git 可以看到git只配置了邮箱和名字,并没有密码之类的身份验证的东西。事实上,git并不做身份验证,只有git使用的SSH或HTTPS才可能需要身份验证。因为git完全可以在单机或局域网内运行,所...

阅读全文
Python排序详解

Python中的排序方法 原生Python中有两种常见的排序方法,分别是 list.sort 与 sorted 内置函数。 其中, list.sort 是列表的排序方法,是一个原地排序方法,使用尽可能少的额外空间,它只能在列表上使用。 而 ...

阅读全文
记一次C++错误静态链接导致进程被Abort

静态链接符号重名导致的Abort 本质上来说,这就是编译时连接器 ld 没有发现符号名冲突,进而导致运行时链接器 ld linux arch .so 将同一个对象初始化了两遍,并且在该对象上调用了两遍析构函数,进而导致析构时引发 doubl...

阅读全文
常见Hash算法分类

哈希算法是什么? 哈希算法是一类将数据映射到固定长度输出的算法。它满足两个最基本的性质。 1. 输出长度是有限的 2. 同样的数据输入产生同样的输出。 这里的输出长度有限就像是的成语一样,无论故事长短,最终都会简化为四个字的成语。类似的,哈...

阅读全文

最后更新: