[置顶]关于博主

首先感谢各位通过域名52coder.net 52murong.com访问本站。52murong.com 慕蓉是我女朋友的名字,她也是一名程序员,现在访问该域与52coder.net均会打开本站。

52coder.net是很早之前与同学一起脑洞的域名:中文名可以叫做-我爱程序员。我记得那年冬天孟非主持的非诚勿扰很火,我信誓旦旦的说以后要做一个网站,专门去为程序员解决个人问题,于是就有了现在的这个域名52coder.net。当时比较热衷于论坛,折腾过Discuz,在读书时折腾过,最多的时候同时在线人数超过1000,论坛的注册人数达到了2w左右,现在却早已忘记当初因为什么原因关闭论坛。

博客开始......

UNIX/Linux系统管理技术手册

书架上的这块大部头书在5.1的时候终于有时间来学习了,本文将长期更新,记录UNIX/Linux系统管理技术手册学习中的疑问与解答。该书在豆瓣评分颇高,UNIX/Linux系统管理技术手册.勘误表在本文最后,如有疑问欢迎留言讨论。

笔记中实际操作的系统来自于ubuntu,运行在一款古董级的hp笔记本上,在Macbook Pro中运行了一台centos7虚拟机,电脑卡的时候关闭该虚拟机使用hp笔记本中的虚拟机。

leveldb中的LRUCache学习

由于查询内存要远比查询mongo数据库快,为了减少数据库查询压力,提升业务进程处理速度,实现了一个简单的lrucache,笔记链接

LRU算法C++实现

最近项目里需要实现一个LRU算法,github上找到一个c++版本,虽然C++用的少,但看了下源码之后发现学到了不少知识。本文记录如何使用该开源库,最后给出学习之后对源代码的注释版本。

原项目地址:cpp-lru-cache

源代码使用,将如下代码命名为lru_example.cpp,并与文件lrucache.hpp放在同一个目录下。使用如下命令编译:

g++ -g -std=c++11 -o lru_example lru_example.cpp

lru_example.cpp

#include "lrucache.hpp"

#include <......

C语言函数getrlimit与setrlimit介绍

老规矩,祭出man手册。学习man手册中的内容:man 2 getrlimit

The getrlimit() and setrlimit() system calls can be used to get and set the resource limits such as files, CPU, memory etc. associated with a process.

Each resource has an associated soft and hard limit.

soft limit: The soft limit is the actual limit enfo......

日常开发笔记总结(二)

CTF-ALL-In_One笔记

看到朋友圈学弟推荐他舍友写的一套CTF学习路线,作为一名"安全"从业人员,个人觉得还是有必要静下心来好好学习。本文只记录一些相对不太熟或理解不深刻的知识点,并尽量辅之以实例。

CTF-ALL-In_One

apropos 命令

apropos [whatever] 在一些特定的包含系统命令的简短描述的数据库文件里查找关键字

[root workspace]#apropos passwd

chgpasswd (8) - update group passwords in batch mode

chpasswd ......

协程-C语言实现

最近在学习lua的过程中发现lua居然有个东西叫协程(协同coroutine),虽然以前就听过这个概念,但没有结合实践的一些理解。

开始今天的文章前,首先需要学习下面几篇文章。

漫画-什么是协程?

lua协同程序

difference between a coroutine and a thread

linux下有ucontext族函数,可以用于实现协程。

我所理解的ucontext族函数

ucontext族函数详解

Segment Fault例子:

#include <stdio.h>

void ping();

void pong();

vo......

mongoc-c-driver使用教程

ubuntu install MongoDB

Installing the MongoDB C Driver (libmongoc) and BSON library (libbson)

红黑树

昨天下班在地铁上居然听到有人在讨论红黑树,这块虽然一直在用,但早已忘了具体的实现细节,利用周天上午的时间,学习红黑树的知识。

以下红黑树的基本概念来自维基百科红黑树,详细介绍请阅读该文章。

另一篇非常不错的文章:红黑树的变色与旋转

可以拿来直接工程中使用的代码:libtree-github

红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。

红黑树是每个节点都带有颜色属性的二叉查找树,颜色为红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:

性质

1.......

TLPI-Chapter 29线程:介绍

一个进程可以包含多个线程,多个线程共享同一份全局内存区域,包括初始化数据段(initialized data)、未初始化数据段(uninitialized data)以及堆内存段(heap segment).

对于某些应用而言,线程要优于进程:

1.进程间信息难以共享,必须使用进程间通信IPC方式,在进程间进行消息通信。

2.使用fork创建进程带价较高。

线程解决了上面两个问题:

1.线程之间能够方便、快速共享信息,需要使用线程同步技术(互斥锁 条件变量)

2.创建线程比创建进程快(实现线程是通过clone()系统调用)