![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 51
zhbt1234
这个作者很懒,什么都没留下…
展开
-
程序设计原则
设计原则1.两个类之间非继承关系,一个类要用到另一个类,需要将其作为它的一个成员,而非是作为父类继承2.多线程改造:用到队列的地方类可以改造成多线程转载 2017-01-17 11:11:50 · 218 阅读 · 0 评论 -
apache模块开发
apache扩展模块开发:http://www.chinaunix.net/old_jh/23/1255594.htmlapache显示处理流程配置 http://httpd.apache.org/docs/current/mod/mod_info.htmlmod_security英文文档:https://github.com/SpiderLabs/ModSecurity/wiki/Ref转载 2017-01-17 11:24:35 · 365 阅读 · 0 评论 -
c++调试
利用GDB进行多线程调试2016-08-30 23:37 343人阅读 评论(0)收藏举报分类: gdb/gcc/makefile(15) 一、多线程调试多线程调试重要就是下面几个命令:info thread 查看当前进程的线程。 thread 切换调试的线程为指定ID的线程。 break file.c:100转载 2016-11-09 10:14:49 · 206 阅读 · 0 评论 -
c++编译错误
一.变量未定义的引用: 1.如果变量是类中的静态成员,需要先在类外部初始化。否则会出现此种错误二。头文件包含了,却报 zsp_ipc_proxy_client.hh:8:1: 错误:expected class-name before ‘{’ token 代码:class ZSP_IPC_Proxy_Client : public ZSP_IPC_Host原创 2017-01-17 11:10:43 · 431 阅读 · 0 评论 -
makefile模板
一.编译.soCC = gccCFLAGS =# opencv 头文件和lib路径 OPENCV_INC_ROOT = ../includeOPENCV_LIB_ROOT = /usr/local/lib#.o文件与.cpp文件同名OBJS = waf_log_client.o# 目标文件名LIB = ../lib/libcommon.so OP转载 2017-02-22 14:28:46 · 224 阅读 · 0 评论 -
c++笔记
一.socket1.listen(int fd,int backlog).backlog表示已经完成3次握手而等待accept的最大个数。listen调用后,内核会建立2个队列,一个是syn队列,表示接受的请求但还未完成3次握手的连接,一个是accept队列,表示完成3次握手的队列。2.accept(int fd,struct addr,socklen_t *len).会从accept原创 2018-01-16 23:48:03 · 578 阅读 · 0 评论 -
c++ api地址
c++ api地址:http://en.cppreference.com/w/转载 2017-01-17 11:09:50 · 312 阅读 · 0 评论 -
打印结构体偏移
转载自:http://blog.csdn.net/kelsel/article/details/53506283#define OFFSET(x, y) &((x *)0)->ystruct TestStruct { int mVar1; int mVar2; int mVar3;};void OffsetTestStruct(){ fprintf(stder转载 2017-01-06 10:22:22 · 384 阅读 · 0 评论 -
c++资料源
c++标准库 cppreference原创 2016-11-04 16:16:22 · 183 阅读 · 0 评论 -
c++命名规范
属性部分: 全局变量 g_ 常量 c_ c++类成员变量 m_ 静态变量 s_类型部分:指针 p 函数 fn 无效 v 句柄 h 长整型 l 布尔 b 浮点型(有时也指文件) f 双字 dw 字符串 sz 短整型 n 双精度浮点 d 计数 c(通常用cnt) 字符 ch(通常用c) 整型 i(通常用n) 字节 by转载 2016-11-04 16:17:00 · 172 阅读 · 0 评论 -
c++11使用
在gcc中加入-std=c++11.编译错误1 error: ‘shared_ptr’ is not a member of ‘std’ std::shared_ptr q_handle = make_shared(); 解决:gcc中加入-std=c++11,如cc -g -std=c++11 -o xxx编译错误2 unable to find string li原创 2016-11-04 18:20:33 · 1270 阅读 · 0 评论 -
c++11 智能指针
1.多态下使用class parent{public: parent() { cout << "parent constructor" << endl; } virtual void showinfo() { cout << "parent info" << endl; } ~parent()转载 2016-11-07 17:43:51 · 363 阅读 · 0 评论 -
宏定义 日志输出
#define DEBUG(format,...) printf("File: "__FILE__", Line: %05d: "format"/n", __LINE__, ##__VA_ARGS__) #else #define DEBUG(format,...) #endif int main() { char str[]="Hello World";转载 2016-10-27 11:35:01 · 415 阅读 · 0 评论 -
NFQUEUE抓包
nfqueue和C的libipq比起来,支持python的nfqueue会显得强大很多,特别是和scapy结合起来用的时候。首先需要说明的是在iptables中的target除了之前提到的五项(ACCEPT,DROP,RETURN,QUEUE,other_chain)之外,还有一个叫NFQUEUE,它是QUEUE的扩展。相比于QUEUE,它可以由用户指定不同的queue numbe转载 2016-10-27 15:27:04 · 4361 阅读 · 0 评论 -
linux 线程学习
一.线程创建pthread_create(tid,NULL,fun,void*arg) 正常返回0.void * fun(void*arg);二.线程终止任意线程调用了exit,_Exit ,_exit.那么整个进程就会终止。 单个线程退出:1.线程函数中 return或pthread_exit, 2.被其他 线程取消 调用pthread_concel(pid)原创 2016-10-27 16:39:58 · 227 阅读 · 0 评论 -
算法
KMP算法c++实现:http://blog.csdn.net/gdly2010/article/details/52970988转载 2016-10-31 11:29:16 · 260 阅读 · 0 评论 -
线程锁
对于一个线程读,一个线程写的情况要加锁。一.互斥量 锁分为动态锁,通过malloc生成。需要调用pthread_mutex_init和pthread_mutex_destory来初始化和销毁。静态锁pthread_mutex_t mutexa=PTHREAD_MUTEX_INITIALIZER.不用初始化和销毁。1.线程锁函数pthread_mutex_init(pthread_m原创 2016-10-28 14:29:55 · 267 阅读 · 0 评论 -
linux进程学习
一旦父进程长期运行,而又没有显示wait或者waitpid,同时也没处理SIGCHLD信号,这个时候init进程,就没办法来替子进程来收尸。这个时候,子进程就真的成了”僵尸“了。转载 2016-11-02 14:50:43 · 183 阅读 · 0 评论 -
c++编译错误
1.undefined reference to 未定义的引用。需要gcc使用-lxx库,如gcc -lnfnetlink2.test.c:9:21: error: storage size of ‘qb’ isn’t known struct nfq_q_handle qb; 将nfq_q_handle改为nfq_q_handle*原创 2016-11-03 15:42:07 · 351 阅读 · 0 评论 -
libevent多线程
使用libevent进行多线程socket编程demo时间 2015-02-10 22:03:00 博客园精华区原文 http://www.cnblogs.com/james6176/p/4285018.html主题 Socket libevent 多线程最近要对一个用libevent写的C/C++项目进行修改,要改成多线程的,故做了一些学习和研究。转载 2016-12-21 11:42:19 · 2805 阅读 · 0 评论 -
C++中调用 C静态函数库的方法
C++中调用 C静态函数库的方法首先,编写静态库函数/* player.h */#ifndef __PLAYER_H#define __PLAYER_H void player_open(char* path); #endif /* player.c */#include"pla转载 2016-12-21 16:49:09 · 1786 阅读 · 0 评论 -
面试准备
1.int(*s[10])(int)表示什么意思?int (*s[10])(int)表示s是一个数组,含有10个元素,每个元素都是一个函数指针(参数为int,返回值为int)。2.函数指针和指针函数区别指针函数就是返回值是一个指针,它是一个普通函数。如int* abc(int a){return &b;}函数指针就是一个指针,该指针指向函数。如: int (*abc)(int a)原创 2018-01-16 23:49:15 · 397 阅读 · 0 评论