2019-12-17 10:14
⁄ 工业·编程
⁄ 共 11395字
一、前言
就目前来讲,我在c/c++开发时使用过cJSON和json-c两种库,各有优劣,但是就使用简单程度来讲,我更倾向于cJSON,最近项目又用到cJSON了,正好简单总结一下,防止长时间不用又完全没有印象了,json-c等下次哪个项目使用的时候再去总结。
二、下载及编译
1、下载
这个是github的源码地址:
https://github.com/DaveGamble/cJSON
我们可以直接clone:
git clone https://github.com/DaveGamble/cJSON.git
以下内容基本是...
cJSON, JSON阅读全文
2019-12-16 09:59
⁄ 工业·编程
⁄ 共 3618字
一 libev简介
libev是一个轻量级的事件通知库,具备支持多种事件通知能力,通过对libev的源码的阅读,可以清楚了解事件通知实现内部机制。
二 核心数据结构
在libev中关键的数据结构是,loop结构体,该结构体定义的字段较多,但是主要核心的可以分为两大类
ev_loop结构体(loop为ev_loop结构的全局变量)的字段定义在ev_vars.h头文件中,然后在ev.c中通过include的方式导入
1.各类事件的watcher集合
loop中有支持很多类...
libev阅读全文
2019-12-15 06:56
⁄ 工业·编程
⁄ 共 7635字
说到Redis就会联想到Memcached,反之亦然。了解过两者的同学有那么个大致的印象:Redis与Memcached相比,比仅支持简单的key-value数据类型,同时还提供list,set,zset,hash等数据结构的存储;redis支持数据的备份,redis支持数据的持久化,看起来redis比memcached更加牛逼一些,那么事实上是不是这样的呢?
Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较:
· Redis支持服务器端的数据操作:Red...
Memcached, Redis, 区别阅读全文
2019-12-14 06:30
⁄ 工业·编程
⁄ 共 2239字
一、Memcached简介
Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。
Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。
Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。
Memca...
Memcached, Redis阅读全文
2019-12-13 12:39
⁄ 工业·编程
⁄ 共 429字
#include <stdio.h>
int fun()
{
printf("func\n");
return 0;
}
int f() __attribute__((weak, alias("fun")));
#define weak_alias(name, aliasname) \
typeof(name) aliasname __attribute__((weak, alias(#name)))
weak_alia...
glibc阅读全文
2019-12-12 12:35
⁄ 工业·编程
⁄ 共 1230字
__attribute__是用来说明函数的属性,weak和alias分别是两个属性。
(一)强符号和弱符号:
强符号:已经初始化的全局变量和未被weak修饰的函数
弱符号:未初始化的全局变量和被weak修饰的函数
符号链接原理:链接器发现同时存在弱符号和强符号,优先选择强符号,如果发现不存在强符号,只存在弱符号,则选择弱符号
那么它们有什么用呢?比如我们想使用某个函数必须用到的函数,但是不知道该函数在其...
GCC, glibc阅读全文
2019-12-11 12:32
⁄ 工业·编程
⁄ 共 2882字
最近查看linux内核代码时,表现了一些编译器选项如__attribute_((weak))、__attribute__( (alias("target"))),一开始不了解,后来自己查看资料及书籍算是对gcc的这个编译属性有了一定的认识。
一、先了解weak属性。
__attribute__((weak))表示为弱符号属性,所谓的弱符号是针对于强符号来说的,我们定义的全局已初始化变量及全局函数等都是属于强符号,在链接时如果有多个强符号就会报错误;而弱符号主要指未初始化...
GCC, glibc阅读全文
2019-12-10 11:16
⁄ 工业·编程
⁄ 共 1046字
1、制造业对国外工业软件形成长期依赖,关键工艺流程和工业技术数据缺乏长期研发积累,制造业在一些领域呈现技术空心化。我国飞机、船舶、冶金、化工、生物医药、电子信息制造等重点制造领域长期以来习惯用国外工业软件,对于背后的设计原理了解不够,而且缺乏基础工艺研发数据的长期积累,导致基础技术原理数据积累存在明显差距。国外根本不可能出售含有最新创新成果数据的工业软件,能出售的工业软件里面固化的数据往往是上一...
工业软件阅读全文
2019-12-09 10:55
⁄ 工业·编程
⁄ 共 1060字
工业软件可以分成几大类,一是工业设计类,也就是外观造型设计;二是机械设计或产品设计类;三是加工编程类;四是仿真分析类。
一、工业设计类软件
1、犀牛rhino,这个软件是工业设计界最常用的三维建模软件,据说,对于其它三维软件来说,认为很复杂的操作到了犀牛软件却变得轻而易举。
2、alias也是工业设计人员使用的三维软件之一,它的特点就是操作逻辑比较严谨,也偏复杂,但曲面质量比较高,国内使用者不算多。
3、PROE(...
工业软件, 软件工具阅读全文
2019-12-08 10:17
⁄ 工业·编程
⁄ 共 510字
1.memchr检测的是一段内存,strchr检测的是一个字符串 如果一段内存中有0x0的话,显然不能用strchr去查找的。建议看看两个函数的原型
2.strchr会停在\0,memchr不会,看接口就明白了:
NAME
memchr, memrchr - scan memory for a character
SYNOPSIS
#include <string.h>
void *memchr(const void *s, ...
c++, 区别阅读全文