原文:FastCGI+lighttpd开发之介绍和环境搭建 由于需要做一些简单的基于FastCGI的Web开发,开始学习和调研,本篇介绍CGI和FastCGI的概念以及基于FastCGI官方的devkit,以及lighttpd搭建起简单的开发环境,以作备忘。 为啥要搞这个? 现在开发Web有N种选择,啥php,C#,java,ruby,nodejs...哪个都比开发FastCGI要简单和强大的多,为何还要跑到这么个底层来做Web服务呢?答案是嵌入式系统需求!我们知道嵌入式系统往往由于硬件的限制,为了节约处理器和内存…

2019年5月15日 0条评论 89点热度 阅读全文

基本概念 适用对象:整数类型变量(char,short,int,long等)作用:改变二进制位 有什么用 判断某一位是否为1 只改变其中一位,其他位不变 快速计算 分类 & 按位与(双目) &verbar; 按位或(双目) ^ 按位异或(双目) ~ 按位非(取反)(单目) << 左移(双目) >> 右移(双目) 双目:两个数折腾单目:自己折腾 按位与& 口诀:同1为1x&1: 不变x&0: 结果必为0 例子 21 & 18 21: 0001 0…

2019年4月23日 0条评论 59点热度 阅读全文

初始化的重要性 和在使用一个数据之前必须要对数据进行初始化一样,否则可能会使得数据的值不确定,那就会给程序埋下很大的隐患,在使用指针之前也必须要对指针进行”初始化“,参见下面的例程1: #include<stdio.h> int main(void) { int *x; *x = 3; return 0; } 这样的代码可能会出现段错误,因为x指针不知道会指向哪一块内存,使用*x=3来更改那块内存的数据有可能访问到非法内存导致段错误,当然也有可能因为没访问到非法内存而没有产生段错误,但是一个健壮的程序不…

2019年4月13日 0条评论 70点热度 阅读全文

简单介绍 C/C++中的这两种书写方法实在是很像,但是它们的含义有很大的不同,所以一定要能清晰地辨别它们。 简单地说,int *p[4]是指针数组,int(*p)[4]是指向数组的指针 指针数组:是一个元素全为指针的数组;数组指针:可以理解为指针,只是这个指针类型不是int而是int[4]类型的数组 int *p[4],p是一个指针数组,每一个指向一个int型的,等价于(int *) (p[4]) int (*p)[4],p是一个热指针,指向int[4]的数组 通过运算符优先级来理解 上面的原因是,*(间接引用运算…

2019年4月8日 0条评论 66点热度 阅读全文

这篇文章与『理解 GLib 的单元测试框架』一文有些渊源,因为后者在几个示例中使用了 libtool 产生库文件与应用程序文件。 田园时代 我要写一个叫做 foo 的库,它提供一个什么也不做的函数。这个库的头文件为 foo.h: #ifndef FOO_H #define FOO_H void foo(void); #endif foo.c 是这个库的实现: #include "foo.h" void foo(void) { } 用 gcc 编译生成共享库文件 libfoo.so: $ gcc -shared -f…

2019年3月19日 0条评论 93点热度 阅读全文

平常我们写node module的时候,都是直接用javascript去写,今天我们来学习下如何使用c/c++来写node模块,用c/c++写的优势就在于,你可以调用许多系统级的API,如fork,缺点就是它强平台依赖的,不一定能在所有平台下去运行。 写一个node addon一点都不可怕 * 3 我们用到的工具有2个 1.cmake-js 代替node-gyp,使用起来很方便。2.nodejs源码(需要一些头文件和库) cmake-js是使用CMake作为工具,构建跨平台的Makefile,极大方便了Makefi…

2019年2月28日 0条评论 107点热度 阅读全文

常量 const int MAX = 128; 指针 const int * p 或 int const * p 写法:const 在*前作用:指针不能修改所指向的内容,但是可以改变指向 int a = 0; int b = 0; const int * i = &a; int const * j = &b; // 不要这样写,虽然能运算 *i = 1; // 错误 *j = 1; // 错误 i = &b; // 正确 j = &a; // 正确 int * const p 写法:…

2019年2月6日 0条评论 89点热度 阅读全文

在学习Delphi的时候,一个很好的建议是和C/C++去类比着学习,从指针,到内存管理,到数组,到面向对象……各个方面,都是有很多可以相似和或者也有不同的方,类比着学习,一方面加深对Delphi的理解,一方面加深对C/C++的理解,一方面加深对计算机系统的理解,一方面加深对面向对象的理解……由1向多可以很方便的扩展,而且完全不冲突,完全是互相促进的过程。所以学习要有技巧! 大家都认为,C语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运算上。因此,说指针是C语言的灵魂,一点都不为过。同时,这种说法也让很多人…

2019年1月30日 0条评论 75点热度 阅读全文

进程组之间传递文件描述符, 是多进程服务器共享套接字常用的方式. 基于此方式, 可以提供 round-robin , 使每个服务器获得平衡的负载. Nim 和 C 语言调用相同的 POSIX 接口的编程方式如下, (事实上, Nim 是调用的 C POSIX 接口) Nim import posix proc CMSG_LEN(length: cuint): cint {.importc, header: "<sys/socket.h>".} proc socketpair(fds: var array…

2019年1月19日 0条评论 148点热度 阅读全文

极客讨论器现在可以自动分析 C/C++/Java/C#/Python/Objective-C 语言源代码并生成表示调用关系的函数地图,并使用“旅游”模式,在函数地图中浏览代码。如图: 源代码窗口下方就是函数地图。它和源代码是联动的,双击一个函数节点,就自动打开这个函数的代码,编辑或者浏览源代码时则会在地图上自动定位这个函数节点。 每个函数节点上还有表示修改状态的图标,不管是在内部编辑器还是外部编辑器中修改了这个函数的代码,地图上会立即反映出来。如图: 在 UltraEdit 中修改了 Board::operator…

2019年1月14日 0条评论 91点热度 阅读全文
1345672000