libfastcommon是一款开源的C基础库,她是从FastDFS项目中剥离出来的C基础库。这个库非常简单、高效和稳定,提供的函数主要包括如下几类:
string:字符串处理;
logger:日志记录,支持日志轮转、日志压缩等特性;
ini file reader:ini配置文件解析,支持include、标注和简单逻辑处理如#@if 和 #@for;
id generator:64位ID生成器,本地生成可做到全局唯一;
hash:hashtable封装;
avl tree:平衡二叉树;
socket op:网络IO处理;
ioevent:epoll封装,支持 Linux, FreeBSD 和 SunOS;
io buffer management: 网络IO buffer管理;
fast timer:时间轮,通常用于高效处理网络超时;
skiplist:跳表;
mblock & object pool:内存池和对象池;
base64 encode / decode:base64编解码,+和/这两个字符可以自定义;
url encode / decode::URL编解码
local ip functions:获取本机IPv4地址;
system info functions:可以获取系统信息,包括CPU数量、内存大小、系统负载(load)、进程信息等等;
process control:基于进程号(pid)文件的进程控制,包括:start、stop和restart;
task schedule:定时任务处理,支持动态添加定时任务;
char convert:快速字符转换。
更多函数信息,请参阅源码中的C头文件。
对于部分函数,如 id generator、 local ip、system info等,提供了PHP封装,支持PHP5和PHP7。php扩展在子目录php-fastcommon下。
问题描述:Tracker启动时加载不到libfastcommon.so文件 解决 1:检查是否下载、安装libfastcommon。通过whereis libfastcommon.so查找文件 2:安装后查看本机文件路径,添加软链 ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so ln -s /usr/lib64/l
首次添加软链接提示文件已存在 [root@localhost fdfs]# ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so ln: failed to create symbolic link ‘/usr/lib/libfastcommon.so’: File exists 解决方法: 强制创建软链接 ln -sf /usr
头文件为ini_file_reader.h 主要接口 IniContext iniContext;//定义配置文件信息 iniLoadFromFile();//加载文件为结构化配置信息 iniGetStrValue();//根据key获取字符串值 iniGetIntValue();//根据key获取int值 int main(){ printf("begin\n");
完整报错如下: /usr/local/lib/libfastcommon.so: undefined reference to `fcntl64@GLIBC_2.28' collect2: error: ld returned 1 exit status objs/Makefile:236: recipe for target 'objs/nginx' failed make[1]: *** [o
不要被各种关于 reducers, middleware, store 的演讲所蒙蔽 —— Redux 实际是非常简单的。如果你有 Flux 开发经验,用起来会非常习惯。没用过 Flux 也不怕,很容易! 下面的教程将会一步步教你开发简单的 Todo 应用。 Action Reducer Store 数据流 搭配 React 示例:Todo 列表
StackExchange.Redis 中核心对象是在 StackExchange.Redis 命名空间中的 ConnectionMultiplexer 类,这个对象隐藏了多个服务器的详细信息。 因为ConnectionMultiplexer要做很多事,它被设计为在调用者之间可以共享和重用。 你不应该在执行每一个操作的时候就创建一个 ConnectionMultiplexer. 它完全是线程安全的
本部分介绍了 ES6 中的常用基本概念,旨在让大家对 ES6 有个初步的理解。具体内容包括: 变量 字符串 数值 数组 函数 对象 正则 集合 Symbol
路由配置 路由匹配原理 History 默认路由(IndexRoute)与 IndexLink
只是打印出 hello world 肯定是不够的,是吗?你会希望做得比这还要多——你想要输入一些内容,操纵它,然后从中得到一些输出出来的内容。我们可以在 Python 中通过使用变量与常量来实现这一目标,在本章中我们还会学习其它的一些概念。自本章起,书中将出现大量程序源代码内容,在源代码中会包含一些英文语句或者英文注释。为保持源代码整体美观以及避免其它不必要的改动,在代码内容中出现的英文语句将会保
本章主要介绍两个方面的内容: 字符编码 输入和输出 其中,字符编码的概念很重要,不管你用的是 Python2 还是 Python3,亦或是 C++ 等其他编程语言,希望读者厘清这个概念,当遇到 UnicodeEncodeError 和 UnicodeDecodeError 时才能从容应对,而不是到处查找资料。
我们用一个最简单的程序来开始对GTK的介绍,下面的程序将创造一个200×200像素的窗体。 新建一个名为 example-0.c 的文件,写入如下内容: #include <gtk/gtk.h> int main (int argc, char *argv[]) { GtkWidget *window; gtk_init (&argc, &argv); window
本节主要讲一下关于powershell一些简单的基础知识,推荐网站http://www.pstips.net/学习Powershell的一些基础知识 这里是一些简单的基础,写的可能有些简陋,这里可能需要你有一些编程语言的基础就能看懂啦,这里对于后面的代码分析是非常有用的,所以还是希望大家简单的浏览一下基础知识。 变量 变量都是以$开头, 是强类型语言, 语言是大小写不敏感的 提一提变量保护与常量的