c/c++
Dalek
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++中为什么需要多态
程序员的需求产生了多态,这个需求是:在处理类型层次时,程序员希望不把对象看做莫一种特殊的类型形式,而是把它看做基本类型;这个需求引发了一个问题:编译器在编译时不能确定应当执行那个派生类的代码,这种是早捆绑引起的;什么是早捆绑(early binding):编译程序时,根据调用就可以确定程序运行时调用函数的地址;什么是晚捆绑(late binding):在编译程序时,无法原创 2012-03-07 20:29:35 · 1946 阅读 · 0 评论 -
提个问题给大家
多个线程共享一个地址指针会是什么情况?原创 2013-04-07 11:23:07 · 728 阅读 · 0 评论 -
问题:mysql 执行语句打印后最后面有个!号
strSqlQuery INSERT INTO dynipassigntbl(spi,lo_net_no,ipaddr,ts_ip) VALUES(16846093,0,'172.31.1.175','172.31.1.206')!原创 2013-04-08 18:11:08 · 816 阅读 · 0 评论 -
【问题】宏定义
#define plog(pri, ...) \do { \if ((pri) _plog((pri), __VA_ARGS__); \} while (0)原创 2013-04-10 10:33:24 · 773 阅读 · 1 评论 -
Recv_Q 内积攒很多数据包问题
[root@active ~]# netstat -an | grep 4113 tcp 0 0 172.31.1.205:4113 0.0.0.0:* LISTEN udp 2094080 0 0.0.0.0:4113 0.0.0.0:*原创 2013-04-27 17:36:09 · 7456 阅读 · 3 评论 -
Linux 安装CUNIT
查看CUNIT下的README文档,Linux下的安装过程如下Linux: In addition to jam, the standard GNU build system is still supported. The usual sequence of steps should succeed in building and installing CUnit:原创 2013-05-07 15:28:59 · 1460 阅读 · 0 评论 -
接收缓冲区数据包
问题描述:热备系统的维护包监听端口为20000, 热备切换后,主机的20000端口的缓冲区的数据较多,在过若干时间后,消息包接收完毕问题原因:多线程锁颗粒度过大解决方法:将锁颗粒度减小原创 2013-05-21 16:08:28 · 1300 阅读 · 1 评论 -
nginx为什么自己要实现ngx_atoi函数等
nginx为什么自己要实现ngx_atoi函数等原创 2013-05-28 17:39:58 · 2241 阅读 · 0 评论 -
const函数参数优点
const char *debug_location(file, line, func)const char *file;// 传入指针 函数内部有机会修改指针内存内容,所以加上constint line; // 函数内部无法修改该值,所有没有constconst char *func;// 同第一个参数{static char buf[1024];// 不用每次调原创 2013-06-04 15:16:52 · 966 阅读 · 0 评论 -
getopt_long用法及实例
GETOPT(3) Linux Programmer?. Manual GETOPT(3)NAME getopt - Parse command-line options 翻译:getopt 解析命令行参数SYNOPSIS #include原创 2013-02-22 11:35:33 · 980 阅读 · 0 评论 -
Makefile.am Makefile.in与Makefile文件关系
http://hi.baidu.com/hins_pan/item/54b6ae3f5d8df0fade222129Makefile.am, Makefile.in, Makefile文件之间关系以及aclocal, automake, autoconf等命令作用的探究aclocal # 产生 aclocal.m4libtoolize --forceautomake -转载 2013-03-04 14:54:11 · 824 阅读 · 0 评论 -
Getting Started on Unix Variants
文章出自:http://sourceforge.net/projects/boost/files/boost/1.49.0/1 获取BOOST源文件1)下载boost_1_49_0.tar.bz22)解压源文件tar --bzip2 -xf /path/to/boost_1_49_0.tar.bz22 BOOST目录解释boost_1_49_0/ .....翻译 2012-04-11 21:01:54 · 629 阅读 · 0 评论 -
自己写的LIST操作函数C语言
#include #include typedef struct data{int i;int j;}DATA;typedef struct node{void *data;struct node *next;}NODE;typedef struct list{NODE *head;NODE *tail;int cont;}LIS原创 2012-05-19 17:07:33 · 3133 阅读 · 1 评论 -
dereferencing pointer to incomplete type错误
dereferencing pointer to incomplete type原创 2012-06-13 13:30:44 · 793 阅读 · 0 评论 -
信号量用法
信号量的使用主要有以下接口可供调用:1 sem_init#include semaphore.h>int sem_init(sem_t *sem, int pshared, unsigned int value);sem_init函数用于初始化一个未命名的信号量;sem_t *sem:指向一个信号量结构的指针;int pshared:用于指示信号量是进程内线程共享还原创 2012-06-27 21:01:06 · 1373 阅读 · 0 评论 -
Linux 套接字编程中的 5 个隐患(IBM文档)
http://www.ibm.com/developerworks/cn/linux/l-sockpit/原创 2012-06-28 20:46:33 · 760 阅读 · 0 评论 -
epoll函数是线程安全的
#include // for sockaddr_in#include // for socket#include // for socket#include // for printf#include // for exit#include // for bzero#include #include #define HELLO_WORLD_SERVER_PORT 9999 #define BUF原创 2012-06-30 18:37:16 · 2462 阅读 · 2 评论 -
LINUX内置数据类型是线程安全的
#include #include #include #include #define MAX_THREAD 100short g_value = 0;pthread_mutex_t mutex;void *threadOne(void *pdata){while (1){//pthread_mutex_lock(&mutex);g_原创 2012-07-03 09:48:44 · 865 阅读 · 1 评论 -
通过 ulimit 改善系统性能(FROM IBM)
通过 ulimit 改善系统性能孙 翎, 软件工程师, WSO2 Inc叶 光昶, 软件工程师, EMC潘 宁河, 软件工程师, EMC简介: 本文介绍了 ulimit 内键指令的主要功能以及用于改善系统性能的 ulimit 使用方法。通过这篇文章,读者不仅可以了解 ulimit 所起的作用,并且可以学会如何更好地通过 ulimit 限制资源的使用来转载 2012-07-03 12:26:22 · 847 阅读 · 0 评论 -
字符串转换数字
#include #include #include #include #define MAX_STR_LEN 32#define MAX_INT_VALUE 0xEFFFFFFF#define LESS_ZERO 1#define BIG_ZERO 2int strtoint(char *pStr){int i = 0;原创 2013-06-19 17:48:22 · 906 阅读 · 0 评论 -
数字反转
#include #include #include #define MAX_STR_LEN 32int reverse(int x) { //write your code here int i = 0; int j = 0; int iNum = x; static char strNum[MAX_STR_LEN原创 2013-06-19 17:49:15 · 1155 阅读 · 0 评论 -
要求实现把给定的一个整数取其相反数的功能
题目很简单,完成函数reverse,要求实现把给定的一个整数取其相反数的功能,举两个例子如下: x = 123, return 321 x = -123, return -321#include#include #include #define MAX_STR_LEN 32int reverse(int x) { //write your code here原创 2013-06-19 17:54:58 · 2387 阅读 · 2 评论 -
C代码整洁之道--宏表示复杂抽象实现
//使用宏来替换复杂抽象的实现过程,如下面的函数中的 epcf = ngx_event_get_conf(cycle->conf_ctx, ngx_epoll_module);ngx_epoll_init(ngx_cycle_t *cycle, ngx_msec_t timer){ ngx_epoll_conf_t *epcf; epcf = ngx原创 2013-08-20 14:24:59 · 992 阅读 · 0 评论 -
C代码整洁之道-可配置处理过程
voidngx_process_events_and_timers(ngx_cycle_t *cycle){ ngx_uint_t flags; ngx_msec_t timer, delta; ...... delta = ngx_current_msec; // 处理事件ngx_epoll_process_events (void)原创 2013-08-09 09:38:04 · 958 阅读 · 0 评论 -
OPENSSL SHA256计算
#include "include/openssl/crypto.h"#include "include/openssl/sha.h"#include int main(){ int iDatLen = 102400; SHA256_CTX ctx; unsigned char pSrcDat[102400]; unsigned char pDscDat[1024]; int原创 2013-11-14 11:12:31 · 3757 阅读 · 0 评论 -
碰到bind错误,主程序异常,调用处理函数退出问题
折腾了很久,才发现是调用BIND函数失败,从打印日志上看到是地址已经被用,是地址复用的问题,查看IBM文档库,如下,问题解决。您可以使用 bind API 函数来绑定一个地址(一个接口和一个端口)到一个套接字端点。可以在服务器设置中使用这个函数,以便限制可能有连接到来的接口。也可以在客户端设置中使用这个函数,以便限制应当供出去的连接所使用的接口。bind 最常见的用原创 2012-06-29 11:22:43 · 2475 阅读 · 0 评论 -
HADOOP单节点安装
Single Node SetupPurposePrerequisitesSupported PlatformsRequired SoftwareInstalling SoftwareDownloadPrepare to Start the Hadoop ClusterStandalone OperationPseudo-Distribu原创 2012-02-09 16:07:28 · 1820 阅读 · 0 评论 -
cmake Debug模式和Release模式
在cmake中要编译debug模式的话,在CMakeLists.txt中添加如下两行SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb ")SET(CMAKE_CXX_FLAGS_RELEASE "${ENV{CXXFLAGS} -O3 -Wall")然后,在编译的时候,使用如下命令:原创 2012-02-11 21:03:59 · 5657 阅读 · 0 评论 -
MINIXML使用
val1valueval3val4val5val6val7val8#include int main(){ mxml_node_t *tree; /* */ mxml_node_t *data; /* */ mxml_node_t *node; /* */ mxml_node_t *group; /* */mxml原创 2012-05-19 14:33:56 · 3533 阅读 · 1 评论 -
TCP UDP IP报文头结构
在/usr/src/linux-headers-3.2.0-23/include/linux目录下tcp.h udp.h ip.h中定义如下结构struct tcphdr { __be16 source; __be16 dest; __be32 seq; __be32 ack_seq;#if defined(_原创 2012-07-24 11:43:19 · 2735 阅读 · 0 评论 -
单例模式
http://blog.youkuaiyun.com/liguangzhenghi/article/details/8076361Singleton模式可以是很简单的,它的全部只需要一个类就可以完成(看看这章可怜的UML图)。但是如果在“对象创建的次数以及何时被创建”这两点上较真起来,Singleton模式可以相当的复杂,比头五种模式加起来还复杂,譬如涉及到DCL双锁检测(double check转载 2013-08-06 14:12:10 · 622 阅读 · 0 评论 -
C代码简洁之道-把程序段定义成宏
#define ngx_post_event(ev, queue) \ \ ngx_mutex_lock(ngx_posted_events_m原创 2013-08-05 11:46:47 · 1450 阅读 · 0 评论 -
服务器启动流程
int ngx_cdeclmain(int argc, char *const *argv){ ngx_int_t i; ngx_log_t *log; ngx_cycle_t *cycle, init_cycle; ngx_core_conf_t *ccf; ngx_debug_init(); if原创 2013-07-08 15:25:10 · 1111 阅读 · 1 评论 -
修改进程名称
#define ngx_setproctitle(title) setproctitle("%s", title)原创 2013-07-09 17:10:59 · 2494 阅读 · 1 评论 -
setitimer函数
GETITIMER(2) Linux Programmer?. Manual GETITIMER(2)LINUX 编程手册NAME getitimer, setitimer - get or set value of an interval timergetitimer, setitimer - 获取或设置一原创 2013-07-10 10:46:48 · 1248 阅读 · 0 评论 -
优雅的使用链表
http://rdc.taobao.com/blog/cs/?p=16751. 优雅地使用链表 链表是编程中经常要用到的数据结构,结构体描述时分为数据域和指针域,本没有什么好讲。但有没有想过教科书上的这种方式有什么问题?通过这种方式定义和使用链表,对于不同的链表类型,都要定义各自的链表结构,繁琐的很。linux kernel中链表的用法才应该是教科书中出现转载 2013-07-10 18:14:38 · 941 阅读 · 0 评论 -
NGX 信号处理流程
int ngx_cdeclmain(int argc, char *const *argv){ ....#if !(NGX_WIN32) if (ngx_init_signals(cycle->log) != NGX_OK) { // 服务器启动时进行初始化信号处理 return 1; } if (!ngx_inherited && ccf原创 2013-07-11 10:25:45 · 1052 阅读 · 0 评论 -
字节对齐设置的两种方式
#include #include #include #include #include #include #include #pragma pack (1)struct data{ int i; int j; int k; char c;};#pragma pack ()#pragma pack (4)struct data2{ int i; int原创 2013-07-12 16:54:57 · 1775 阅读 · 1 评论 -
NGX 内存池实现
// 创建内存池/**********************************************************************函数名称: ngx_create_pool函数描述: 创建内存池,从堆中分配一块内存当作内存池输入参数: size_t size:内存池SIZE原创 2013-07-17 19:48:04 · 997 阅读 · 2 评论 -
C代码简洁之道-函数宏定义
#define ngx_process_changes ngx_event_actions.process_changes#define ngx_process_events ngx_event_actions.process_events#define ngx_done_events ngx_event_actions.done#define ngx_add_原创 2013-08-05 11:36:32 · 1015 阅读 · 2 评论
分享