#include <stdio.h> #include <stdlib.h> void out(int *p, int n){ int i; for(i=0;i<n;i++){ printf("%d ", *(p+i)); } printf("\n-------------------\n"); } int main(void){ printf("请输入要申请几块整型为4字节大小的块内存:"); int n; sca…
系统环境:CentOS Linux release 7.3.1611 (Core) 3.10.0-514.el7.x86_64 CentOS6与7配置方法大同小异.通常是在系统安装的时候创建lvm,然后在后期进行动态扩展分区容量. 新建lvm 安装lvm2 # yum install lvm2 创建初始化物理卷,物理卷可以是一个分区,也可以是一整块硬盘 # pvcreate /dev/sda2 查看物理卷 [root@centos7 etc]# pvs PV VG Fmt Attr PSize…
最近做的一个项目中需要用到rabbitmq,按照自己的之前的一篇文章http://www.cnblogs.com/mingaixin/archive/2012/10/28/2743807.html进行安装测试,都ok了,但是实际使用过程却发现很大的问题: 场景是这样的: 我建了10个队列,写了一个循环,目的是往每个队列中写入3万条数据,得到的结果是经过N多次的测试,程序在写到第四个队列的时候,就被杀死了:经过top命令,监控内存,发现程序在执行的过程中,cpu使用率达到70%以上,php进程占用…
引言 - ipc - shm 共享内存 本文会通过案例了解ipc 的共享内存机制使用, 后面会讲解C 如何使用外部内存服务memcached. 好先开始了解 linux 共享内存机制. 推荐先参看下面内容回顾一下 共享内存 linux api. linux进程间的通信(C): 共享内存    http://blog.chinaunix.net/uid-26000296-id-3421346.html 上面文章可以简单看一下概念.  下面这篇文章好些, 可以细看加深共享内存api使用熟练度. Li…
在项目开发中,想要实现PHP多个进程之间共享数据的功能,让客户端连接能够共享一个状态,需要开启共享内存函数shmop.如果预期考虑会遇到这方面需求,那么最好在编译PHP的时候添加--with-shmop选项.但是编译的时候没有添加,只能在重新编译配置了. 一.找到php源码包里的扩展目录,进入shmop # cd /usr/local/src/php-/ext/shmop/ 二.执行phpize,生成配置 # phpize [root@bogon shmop]# ls acinclude.m4…
主要分两种情况:存储的内容是指针:存储的内容是实际对象. 看以下两段代码, typedef pair<VirObjTYPE, std::list<CheckID>*> VirObj_CheckID_pair; class LangChecker { public:     LangChecker();     ~LangChecker();         void Register(VirObjTYPE type, CheckID id); private:     std::m…
0.规则<The Elements of Programming Style><The Elements of Style> 1.假想的编译程序(1)使用编译器提供的所有的可选警告设施 增强类型静态检查的能力eg: void* memchr(const void* str, int ch, int size);那个调用该函数时,即使互换其字符ch和大小size参数,编译器也不会发出警告 但是如果在函数原型中使用更加精确的类型,就可以增强原型提供的错误检查能力void* memchr…
当再次在原来申请的内存基础上再加内存的时候用realloc,如果第一次分配的内存后面存储地方够用,则连着原来的申请,如果不够用,就重新找到一块够用的地方,然后把原来的复制过去 int main(int argc, const char * argv[]) { char *name = NULL; int total = 0; while(1){ char a = getchar(); if (a == '\n'){ break; } if (name ==NULL) { name = (char…
当再次在原来申请的内存基础上再加内存的时候用realloc,如果第一次分配的内存后面存储地方够用,则连着原来的申请,如果不够用,就重新找到一块够用的地方,然后把原来的复制过去 int main(int argc, const char * argv[]) { char *name = NULL; int total = 0; while(1){ char a = getchar(); if (a == '\n'){ break; } if (name ==NULL) { name = (char…
C 编程中,经常需要操作的内存可分为下面几个类别: 堆栈区(stack):由编译器自动分配与释放,存放函数的参数值,局部变量,临时变量等等,它们获取的方式都是由编译器自动执行的 堆区(heap):一般由程序员分配与释放,基程序员不释放,程序结束时可能由操作系统回收(C/C++没有此等回收机制,Java/C#有),注意它与数据结构中的堆是两回事,分配方式倒是类似于链表. 全局区(静态区)(static):全局变量和静态变量的存储是放在一块儿的,初始化的全局变量和静态变量在一块区域,未初始化的全局变…