随笔分类 - C/C++
摘要:1、SDS 定义 在C语言中,字符串是以’\0’字符结尾(NULL结束符)的字符数组来存储的,通常表达为字符指针的形式(char *)。它不允许字节0出现在字符串中间,因此,它不能用来存储任意的二进制数据。 sds的类型定义 肯定有人感到困惑了,竟然sds就等同于char *? sds和传统的C语言
阅读全文
摘要:很久以前看过的,今天总结一下一、PHP中创建一个类在PHP中创建一个简单的类是这样的:二、zend_class_entry结构zend_class_entry是内核中定义的一个结构体,是PHP中类与对象的基础结构类型。struct _zend_class_entry { char type; ...
阅读全文
摘要:一、什么是spinlockspinlock又称自旋锁,是实现保护共享资源而提出一种锁机制。自旋锁与互斥锁比较类似,都是为了解决对某项资源的互斥使用无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,只能有一个执行单元获得锁。但是两者在调度机制上略有不同。对于互斥锁,如果资源已经被占用,资源申...
阅读全文
摘要:1、简介GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。同时GDB也具有例如ddd这样的图形化的调试端2、调试C/C++程序直接上代码了#includeusing namespac...
阅读全文
摘要:一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS...
阅读全文
摘要:1、线程安全宏定义在TSRM/TSRM.h文件中有如下定义#define TSRMLS_FETCH() void ***tsrm_ls = (void ***) ts_resource_ex(0, NULL)#define TSRMLS_FETCH_FROM_CTX(ctx) void ...
阅读全文
摘要:在Linux/UNIX系统引导的时候会开启很多服务,这些服务称为守护进程(也叫Daemon进程)。守护进程是脱离于控制终端并且在后台周期性地执行某种任务或等待处理某些事件的进程,脱离终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的中断信息所终止。创建守护进程的一般...
阅读全文
摘要:基本算法全排列算法有这么几种:(A)字典序法(B)递增进位制数法(C)递减进位制数法(D)邻位对换法废话不多说,直接上代码C代码#include #define swap(a,b){long temp=*a;*a=*b;*b=temp;}static int i=0; ...
阅读全文
摘要:#include #include #define ElemType inttypedef struct node{ ElemType data; struct node *next;}node,*link;void display(link list);//使用头插法link createH(l...
阅读全文
摘要:一.前言一致性哈希(Consistent Hashing),最早由MIT的Karger于1997年提出,主要用于解决易变的分布式Web系统中,由于宕机和扩容导致的服务震荡。现在这个算法思路被大量应用,并且在实践中得到了很大的发展。二.算法设计1.问题来源在做服务器负载均衡时候可供选择的负载均衡的算法...
阅读全文
摘要:算法复杂度以及稳定性分析算法名称平均时间辅助空间稳定性冒泡排序O(n2)O(1)是选择排序O(n2)O(1)否插入排序O(n2)O(1)是自底向上归并排序O(nlog2n)O(n)是自顶向下归并排序O(nlog2n)O(n)是快速排序O(nlog2n)O(n)否堆排序O(nlog2n)O(1)否基数...
阅读全文