过程
ACoderLife
这个作者很懒,什么都没留下…
展开
-
thttpd源码之Fdwatch.c
此文件实现I/O多路复用的功能(select,kqueue,poll,devpoll),提供抽象的操作接口,从而保证了接口的单一性和可移植性。接口:/* Figure out how many file descriptors the system allows, and** initialize the fdwatch data structures. Returns -1 on failu...原创 2018-05-09 11:28:08 · 323 阅读 · 0 评论 -
tinyxml对xml简单的读写操作
背景:如果xml配置文件存在,直接读取配置,如果不存在需要创建一个xml文件,写入默认的配置的配置。判断xml是否存在#define CONFIG_FILE "conf.xml"void Config::initConfig(){ if(access(CONFIG_FILE, F_OK) != F_OK) { createFile(); }else ...原创 2018-11-15 14:28:36 · 986 阅读 · 0 评论 -
tinyxml库LoadFile函数出错
TiXmlDocument doc;bool loadOk=doc.LoadFile("config.xml" );//加载文档if ( !loadOk ){ printf( "Could not load test file 'demotest.xml'. Error='%s'. Exiting.\n", doc.ErrorDesc() );}LoadFile ,提示出错。...原创 2018-10-30 15:06:28 · 5058 阅读 · 2 评论 -
vs2015 安装破解版Visual Assist X
1.下载破解版的Visual Assist X 下载地址2.解压文件,安装VA_X_Setup3.用Crack目录下的VA_X.dll替换VA_X_Setup安装目录下的VA_X.dll4.用Crack目录下的VA_X.dll替换vs2015的目录,我的在C:\Users\Administrator\AppData\Local\Microsoft\VisualStudio\14....原创 2018-10-27 09:13:01 · 1630 阅读 · 0 评论 -
C++定义全局变量
1.创建一个.h和同名的.cpp文件在.h中声名extern int a ;关键字在于extern;在.cpp中定义int a ;2.别的类使用这个变量,只需要添加.h头文件,即可使用原创 2018-10-28 07:50:34 · 6204 阅读 · 1 评论 -
程序一运行,就出现Segmentation fault
交叉编译后,运行程序,程序一运行,就出现Segmentation fault。在main函数开头加入打印调试,发现程序都没有进入main函数就出错。猜测:估计是类的初始化调用构造函数或者全局变量的初始化引起的错误。 一步一步的屏蔽,最终发现是一个全局变量分配的内存太大,引起的错误。...原创 2018-08-06 14:41:29 · 8112 阅读 · 0 评论 -
malloc、calloc、realloc的区别
来源:https://blog.csdn.net/shuaishuai80/article/details/6140979(1)C语言跟内存分配方式<1>从静态存储区域分配. 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量、static变量.<2>在栈上创建 在执行函数时,函数内局部变量的存储单元都可以在栈上创建,...转载 2018-05-30 22:00:13 · 129 阅读 · 0 评论 -
C语言实现简单多态(参考libevent 多路复用的使用)
C++多态:运行时会根据对象的实际类型来调用相应的函数C语言实现多态,主要是通过函数指针。简单实现代码:定义一个结构体,结构体内容为各种接口的函数指针,相当于定义C++抽象类和纯虚函数struct eventop { const char *name; void *(*init)(void); int (*add)(void); int (*del)(void); i...原创 2018-05-29 23:38:02 · 764 阅读 · 0 评论 -
简单哈希表实现
哈希表定义: 哈希表又称散列表,是根据关键码值(key value)而直接访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 哈希表既有数组的特点(寻址容易),又有链表的特点(方便插入,删除)。哈希表结构示意图: 下面编写一个简单实例:1.头的定义:typedef struct...原创 2018-05-24 15:48:30 · 529 阅读 · 0 评论 -
protobuf2.6.1海思平台交叉编译
一、下载protobuf2.6.1源码地址:https://github.com/google/protobuf/releases二、编译pc版本1.解压protobuf-2.6.1.tar.gz2.配置参数,本人只指定了安装目录/home/work/protobuf/pc_protobuf./configure --prefix=/home/work/protobuf/pc_protobuf3....原创 2018-05-24 14:17:47 · 2014 阅读 · 1 评论 -
protobuf使用版本问题
在使用protobuf编译后的.pb.h和.pb.cc文件时,报错#error This file was generated by an older version of protoc which is#error incompatible with your Protocol Buffer headers. Please#error regenerate this file with a...原创 2018-05-28 10:37:33 · 18894 阅读 · 0 评论 -
Protobuf消息设计原则(值得借鉴)
来源:http://my.oschina.net/cxh3905/blog/159122目录[-]1. 使用 protobuf 的enum定于消息的编号,也就是消息的类型。2. 会为每个具有消息体的消息定义一个对应的protobuf message。例如Login_Request会有一个对应LoginRequest消息。3. 会为每个消息大类定义一个消息,例如命令消息全部包含在message Co...转载 2018-05-26 16:12:27 · 3238 阅读 · 1 评论 -
linux c++ 简单使用protobuf
protobuf简介:GoogleProtocol Buffers简称Protobuf,是Google公司内部的混合语言数据标准.它提供一种轻量,高效的结构化数据存储结构。使用方法:1.下载protobuf,然后编译,请参考protobuf2.6.1海思平台交叉编译2.定义.proto文件例如(addressbook.proto):message Person { required strin...原创 2018-05-26 14:40:30 · 2199 阅读 · 0 评论 -
一些字符串处理函数使用
1.if ( ( cp = strchr( line, '#' ) ) != (char*) 0 )2.cp += strspn( cp, " \t\n\r" );cp2 = cp + strcspn( cp, " \t\n\r" );if ( strcasecmp( name, "debug" ) == 0 )原创 2018-05-25 11:06:18 · 262 阅读 · 0 评论 -
子进程回收waitpid()与wait()
#include<sys/types.h>#include<sys/wait.h>pid_t wait(int *statloc)pid_t waitpid(pid_t pid,int *statloc,int options)功能:功能:当子进程终止时返回,主要用来处理已终止的子进程。当子进程处理完任务后,处于僵死状态,也就成为了僵死进程,父类可以通过上面两个函数...原创 2018-05-08 14:25:04 · 356 阅读 · 0 评论 -
linux 环境变量设置
(1)/etc/profile全局(公有)配置,不管是哪个用户,登录时都会读取该文件。(2)/ect/bashrcUbuntu没有此文件,与之对应的是/ect/bash.bashrc它也是全局(公有)的bash执行时,不管是何种方式,都会读取此文件。(3)~/.profile若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bash_login,若前两...转载 2018-05-17 13:46:40 · 182 阅读 · 0 评论 -
thttpd源码之Timers.c
此文件实现thttpd的定时器功能。定时器结构:/* The Timer struct. */typedef struct TimerStruct { TimerProc* timer_proc; //响应函数 ClientData client_data; //响应函数参数 long msecs; //定时多长时间 int per...原创 2018-05-09 15:50:42 · 244 阅读 · 0 评论 -
C++ 两个类互相调用
总所周知,我们想要调用一个类,一定要添加他的头文件。例如,class A 调用class B,在class A 头文件中,这样子就可以了。如:A.h#ifndef A_H#define A_H#include "B.h"class A{public: A(); B b;};#endif但是,如果我想class A 调用class B , class B 调...原创 2018-11-22 15:35:57 · 8530 阅读 · 0 评论