
c/c++
文章平均质量分 64
caiyunl
这个作者很懒,什么都没留下…
展开
-
gcc 与 g++的不同点 搞不懂
一段代码如下:void *buff;buff = malloc(len);snprinf((char *)buff, len, "Num is : %d", len);mq_send(mqd, buff, len, prio);g++使用错误如下yunlong@ubuntu:~/code/mq$ g++ -o mqsend mqsend.c -lrtmqs原创 2012-04-10 10:42:48 · 1393 阅读 · 0 评论 -
quick_sort.cc
//只是随手写写,非递归版的快排#include #include using namespace std;using std::stack;struct Node{ int begin, end;};int partition(int *a, int begin, int end){ int p = a[end]; int pos = begin; for(int原创 2012-10-29 22:04:57 · 629 阅读 · 0 评论 -
一个仿照Nginx的内存池
mempool.{h,c}#ifndef _MEMPOOL_H_#define _MEMPOOL_H_#include #define POOL_ALIGNMENT 16typedef unsigned char u_char;typedef struct pool_data_s pool_data_t;typedef struct pool_s pool_t;原创 2012-09-05 13:46:08 · 1767 阅读 · 0 评论 -
memcached内存管理(1) ----------------slabs
slabs.{h,c}slab的数据结构如下:typedef struct { unsigned int size; /* sizes of items 每个item的大小*/ unsigned int perslab; /* how many items per slab 每个slabs中能容纳多少个item*/ voi原创 2012-08-16 22:04:09 · 2012 阅读 · 0 评论 -
memcached内存管理(3) ----------------assoc
assoc.{h,c}这个文件的作用是通过item的hash值来对item进行存取和删除的操作,当然删除是指从hash表中删除,而不是真正的释放内存一些重要的全局变量typedef unsigned long int ub4; /* unsigned 4-byte quantities */typedef unsigned char ub1;原创 2012-08-21 01:13:23 · 1486 阅读 · 0 评论 -
memcached内存管理(2) ----------------items
memcached.h中item的声明/** * Structure for storing items within memcached. */typedef struct _stritem { struct _stritem *next; struct _stritem *prev; struct _stritem *h_next; /* hash原创 2012-08-17 16:30:55 · 1865 阅读 · 0 评论 -
Linux下core文件调试方法
原文地址:http://www.cnblogs.com/momi/archive/2012/03/18.html在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制 1)使用ulimit -c命令可查看c转载 2012-08-15 22:18:02 · 801 阅读 · 0 评论 -
c的2个struct 互相引用的例子
struct pool_data_s{ u_char *last; u_char *end; pool_t *next;} ;struct pool_s{ pool_data_t d; size_t max; pool_t *current;} ;上面的2个struct中都有相互引用,且在同一个文件中,只要加上如下语句即可typedef原创 2012-08-15 18:44:35 · 3022 阅读 · 0 评论 -
memcached 内存管理的一点变化
<!--@page {margin:2cm}pre.cjk {font-family:"文泉驿微米黑",monospace}pre.ctl {font-family:"Lohit Hindi",monospace}p {margin-bottom:0.21cm}a:link {}-->memcached内存管理的一些小小的变化原创 2012-08-06 12:22:01 · 678 阅读 · 0 评论 -
linux make使用的简单翻译
原文地址:http://www.cs.umd.edu/class/fall2002/cmsc214/Tutorial/makefile.html<!--@page {margin:2cm}p {margin-bottom:0.21cm}--><!--@page {margin:2cm}pre.cjk {font-family:翻译 2012-07-19 22:33:36 · 672 阅读 · 0 评论 -
传递实参时丢弃类型限定的原因
编译错误: 将'const xxx'作为'xxx'的'this'实参时丢弃了类型限定。 这样的错误一般是因为const限定符的问题。如:#include #include #include #include using namespace std;class A{public: string m_str; A(string str转载 2012-07-14 20:39:51 · 1908 阅读 · 0 评论 -
不同长度的字符串数组排序
#include#include#includeint myStrCmp(const void *lhs, const void *rhs){ const char *lc = *(char **)lhs; //数组元素是char *,而qsort中第四个函数原型是int (*) (const void *, const void *),所以传进来的参数实际是指原创 2012-07-03 15:07:46 · 967 阅读 · 0 评论 -
STL源码剖析中 traits的使用
#include using std::cout;using std::endl;//归根到底就是使用了function template的参数推导机制(argument deduction)//traits函数 生成一个该类型的临时对象,然后返回该对象//而真正的调用函数根据临时对象的类型决定调用哪个函数,当然这些函数是重载的,只是根据类型不同调用不同的重载函数而已//////原创 2012-06-05 10:57:32 · 685 阅读 · 0 评论 -
placement new 在一块已分配内存上创建对象
placement new 是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。它的原型如下: void *operator new( size_t, void *p ) throw() { return p; }首先我们区分下几个容易混淆的关键词:n转载 2012-05-16 16:15:38 · 482 阅读 · 0 评论 -
关于linux下标准读入read和fgets和scanf的区别
测试代码如下#include "../tcpiplib.h"int main(int argc, char **argv){ssize_t n; size_t len; char buf[10]; //memset(buf, 0, sizeof(buf)); n = 8; len = read(fileno(stdin), buf, n); write(fileno(原创 2012-04-23 14:34:54 · 5811 阅读 · 0 评论 -
c++全局变量
编译单元每一个.cpp对应一个编译单元,当然包括其#include的头文件。头文件中应该只包含声明,对应的.cpp文件放定义: externtest1.h#ifndef AAA#define AAA//上面的声明有什么用?//若下面的函数fun()不为extern,则会在link阶段出错,显示main.obj中已经有了fun(),test.obj再重复就出错原创 2012-05-03 22:55:01 · 1072 阅读 · 0 评论 -
一段小代码
今天在微博上看到一段小程序,博主问会不会core,如果core的话,会是在哪一行。程序代码如下。#include struct str{ int len; char s[0];};struct foo{ struct str *a;};int main(){ struct foo f = {0}; if(f.a->s) { printf(f.a->原创 2014-03-31 20:04:04 · 759 阅读 · 0 评论