
笔记
文章平均质量分 70
ken_scott
这个作者很懒,什么都没留下…
展开
-
UNP函数笔记十一: 高级I/O函数
第十四章 高级I/O函数:#include ssize_t recv(int sockfd, void * buff, size_t nbytes, int flags); success return recv-byte-count, error return -1ssize_t send(int sockfd, const void * buff, size_t nbytes原创 2012-04-18 21:20:32 · 1192 阅读 · 2 评论 -
异常规范
异常规范(exception specification)提供了一种方案:它能够随着函数声明列出该函数可能抛出的异常,它保证该函数不会抛出任何其他类型的异常,异常规范跟随在函数参数表之后,它用关键字throw来指定,后面是用括号括起来的异常类型表。例如:我们可以如下修改iStack类的成员函数的声明,以增加适当的异常规范:class iStack{public: // .转载 2012-10-16 23:13:52 · 1205 阅读 · 0 评论 -
今天在《Exceptional C++》上看到的两个有意思的东西
一:对于以下代码:/* * Int.h*/#include struct Int{ std::ostream & print(std::ostream & os) const; /* other codes */};std::ostream & operator << (std::ostream & os, const Int & i原创 2012-10-18 23:50:49 · 712 阅读 · 0 评论 -
unbuntu下opencv 2.4.3安装
2013-05-27 想安装SFML来看看, windows下安装好了, 可ubuntu下怎么也安装不了, gl/gl.h找不到什么的, 网上找了一天的资料也没成, 不玩了, 换别的吧2013-05-28 搜了下opengl和opencv的介绍, 感觉opencv应该有些意思, 所以就安装了, 这次从ubuntu开始, 下载了最新版本 opencv 2.4.5 安装总是不行, 提原创 2013-05-28 18:37:52 · 1032 阅读 · 0 评论 -
浮点运算转换成整数运算
相比整数运算,浮点运算是很慢的,在效率要求很高的情形下,有时我们得转换成整数运算如下面的表达式:void get_gray(int red, int green, int blue, int & gray){ gray = static_cast(red * 0.123 + green * 0.456 + blue * 0.421 + 0.5);}可以转换为:原创 2013-06-02 15:42:13 · 4893 阅读 · 3 评论 -
template关键字的一个特殊用法
#include struct T1{ T1() : value(0) { } const int value;};struct T2{ template int value(int n) const { return(N + n); }};template int func原创 2012-10-15 22:18:11 · 2123 阅读 · 0 评论 -
OpenCV入门学习现状及期间发现的一些问题
考虑到OpenCV的学习内容很多,所以先从MoreWindows的[OpenCV入门学习]博客系列开始学习,经过一周的学习,终于完成了这个系列的学习。 需要指出这个系列的一些不足或者缺点:1. 这个系列的一切实践都是在Windows下完成, 没有尝试过跨平台的实践2. 第一章的配置OpenCV,实际上是有些问题的:比如环境变量的设定是不需要的3. 理论方面的知识有时候有提到,有原创 2013-06-02 14:18:02 · 1182 阅读 · 0 评论 -
使用const_cast的时机
C++标准规定:只要T类型相同, *个数相同(1-N), 无论const和volitale的个数(0-M)相同与否, 谁多谁少, 都是用const_cast来做类型转换 以前对const_cast的认知太肤浅了,这里要再次多谢supermegaboy的解惑! 参见 const char ** 与 char ** 的转换原创 2013-06-06 21:39:53 · 763 阅读 · 0 评论 -
C++11学习:auto和decltype
#include /* C++03 style */template R add(T1 t1, T2 t2){ std::cout << "C++03 style" << std::endl; return(t1 + t2);}/* C++11 style *//* way 1 */template auto add(T1 t1,原创 2013-07-29 21:53:51 · 1192 阅读 · 0 评论 -
一个测试引发的思考
有赖机缘,写代码展示null指针调用类的成员函数、静态成员函数: (想在一份代码中完成)考虑到会有SIGSGEV(无效内存引用),所以要有异常\错误处理方法。1. 首先想到C++的try & catch:#include #include #include using namespace std;class A{public: A(原创 2012-09-14 22:45:58 · 784 阅读 · 0 评论 -
<<Git图解>>笔记
Git图解: http://marklodato.github.com/visual-git-guide/index-zh-cn.html笔记:git add files # 把当前文件放入缓冲区(索引)git add * # 把所有修改过的文件放入缓冲区(索引)git rm files # 从缓冲区(索引)删除filesgit commit # 给缓冲区(索引)生成快原创 2012-09-08 20:49:49 · 1204 阅读 · 0 评论 -
UNP函数笔记十二: Unix域协议
第十五章 Unix域协议:#include struct sockaddr_un { sa_family_t sun_family; /* AF_LOCAL */ char sun_path[104]; /* null-teminated pathname */};sun_path[0] means any-address#include原创 2012-04-19 22:53:53 · 876 阅读 · 0 评论 -
UNP函数笔记十三: 非阻塞式I/O
第十六章 非阻塞式I/O:示例:#include #include #include #include #include "err_exit.h"#define MAXLINE 4096char * gf_time(void){ struct timeval tv; time_t t; static char原创 2012-04-20 20:18:12 · 809 阅读 · 0 评论 -
UNP函数笔记十五: 信号驱动式I/O
第二十五章 信号驱动式I/O:示例:#include #include #include #include "err_exit.h"#include "my_signal.h"static int sockfd;#define QSIZE 8 /* size of input queue */#define MAXDG 409原创 2012-04-21 19:32:11 · 693 阅读 · 0 评论 -
UNP函数笔记十四: 带外数据
第二十四章 带外数据:#include int sockatmark(int sockfd); have oob mark return 1, have not oob mark return 0, error return -1示例:#include int sockatmark(int fd){ int flag; if (io原创 2012-04-21 19:27:43 · 708 阅读 · 0 评论 -
UNP函数笔记十六: 线程
第二十六章 线程:#include int pthread_create(pthread_t * tid, const pthread_attr_t * attr, void * (*func)(void *), void * arg); success return 0, error return原创 2012-04-22 14:35:16 · 854 阅读 · 0 评论 -
epoll使用实例说明
之前一直在讲如何epoll如何好用,但是并没有实例来演示epoll的使用,下面我们就看一个服务器端使用epoll监听大量并发链接的例子。首先看一下epoll的几个函数的介绍。1、epoll_create函数/** * @brief 该函数生成一个epoll专用的文件描述符。它其实是在内核申请一空间,用来存放你想关注的socket fd上是否发生以及发生了什么事件。转载 2012-06-06 13:43:03 · 728 阅读 · 0 评论 -
epoll工作模式详解
我们目前的网络模型大都是epoll的,因为epoll模型会比select模型性能高很多, 尤其在大连接数的情况下,作为后台开发人员需要理解其中的原因。select/epoll的特点select的特点:select 选择句柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,select需要遍历所有句柄才能获取到哪些句柄有事件通知,因此效率是非常低。但是如果连接很少的情况下, select和e转载 2012-06-06 13:38:24 · 799 阅读 · 0 评论 -
gdb commands
gcc/g++ -g -Wall -o sort sort.cddd --separate filegdb file -tuigdb file coreCtrl+PCtrl+NCtrl+X+Ahelprun run run arguments # run 12 5 7break break line_number原创 2012-08-07 13:57:17 · 926 阅读 · 0 评论 -
各单件模式写法解析
方式一、class Singleton{public: static Singleton & instance() { return(s_instance); }private: ~Singleton() { } static Singleton s_instance;};Singleton Single原创 2013-08-14 01:49:16 · 930 阅读 · 0 评论 -
ISO8583包详细资料
ISO8583包(简称8583包)是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。8583包前面一段为位图,用来确定包的字段域组成情况。其中位图是8583包的灵魂,它是打包解包确定字段域的关键,而了解每个字段域的属性则是填写数据的基础。 1、 位图描述如下: 位图位置:1 格式:定长 类型:B16(二进制16位,16转载 2013-09-11 11:38:38 · 2610 阅读 · 0 评论 -
2013年学习总结
2013-06,开发了一个跨linux、windows平台的基础类库,目前也一直在添加一些小功能2013-10,尝试使用开源库libevent搭建网络框架,对libevent的API有了些许了解2013-11,尝试使用开源库libcurl编写http、ftp的客户端处理,别上家公司直接使用openssl和libssh2的API方便多了2013-12,尝试使用开源原创 2014-01-20 19:44:51 · 1059 阅读 · 2 评论 -
openssl编译,Windows/Ubuntu
windows下1. 下载ActivePerl,并安装2. 下载安装包openssl-1.0.1g.tar.gz3. 解压缩到openssl-1.0.1g目录下 (删除test目录中的三个没用的文件:md2test.c、rc5test.c、jpaketest.c,你打开看下就知道为什么要删了它)4. 打开VS的命令提示,比如我打开的:"D:\Program Files\Micr原创 2014-04-20 16:54:30 · 2020 阅读 · 0 评论 -
【笔记】Qt程序在Windows、OS X、CentOS、Ubuntu下的打包处理
主程序名 web_transmit_adapterWindows:打包主目录windows:包含子目录web_transmit_adapter和两个打包文件web_transmit_adapter.nsi、和packing.bat而在web_transmit_adapter子目录中包含了Qt程序web_transmit_adapter.exe以及一些依赖的第三方库文件等发布原创 2016-08-28 17:52:33 · 3347 阅读 · 0 评论 -
【笔记】unix系统下,多个静态库链接到一个可执行程序后,执行时出现莫名奇妙的问题
前提说明:web_transmit_service是一个传输管理程序,内嵌rayvision引擎和aspera引擎,其中引擎是静态库,两个引擎封装的接口特别相似出现问题:vector异常,push_back()执行5次,但size()却是3,而且遍历出的结果与push进去的内容是不一样的,另外,只链接一个引擎时就是正常的,同时链接两个引擎才会执行异常,而且,window原创 2016-11-15 15:31:15 · 1010 阅读 · 0 评论 -
使用Url Schemes打开本地程序
测试:将下列内容保存为test.html,用浏览器打开,单击“Test Url Schemes”超链接,即可看到效果(会启动相应的程序)<HTML> <head> </head> <body> <a href="TestUrlSchemes://">Test Url Schemes</a> </b原创 2016-11-15 16:00:30 · 2296 阅读 · 0 评论 -
windows怎么查看进程的启动时间
点击“开始→运行”,在运行框里输入“msinfo32”打开“系统信息”窗口,依次点击“软件环境→正在运行任务”就可以查看到进程的详细信息,比如进程路径、文件创建日期、启动时间等等一目了然,对不熟悉的进程可以进一步检查,如果碰上系统进程显示的路径为“不可用”,则说明那就是可疑进程了,这也是查找木马文件的好方法。来源:https://www.zhihu.com/question/20613转载 2016-12-29 18:47:31 · 20768 阅读 · 0 评论 -
【测试】字节对齐
#include #include #define test_bool#ifdef test_integer #define type_t long#elif defined(test_double) #define type_t double#elif defined(test_pointer) #define type_t char *#elif def原创 2017-06-07 15:56:29 · 597 阅读 · 0 评论 -
【笔记】linux系统环境限制修改
1. socket缓冲区 1. 查看 $ cat /proc/sys/net/core/rmem_max (接收缓冲区、读缓冲区) 124928 $ cat /proc/sys/net/core/wmem_max (发送缓冲区、写缓冲区) 124928 2. 设置 $ echo "net.core.rmem_max = 16原创 2017-06-30 17:13:21 · 820 阅读 · 0 评论 -
vs编译安装boost
编译、安装Boost1.551. sourceforge上下载Boost1.552. 解压到E:/boost_1_55_03. 程序 -- 所有程序 -- Visual Studio 2013 -- Visual Studio Tools -- VS2013 开发人员命令提示4. 修改文件 has_member_function_callable_with....原创 2014-04-13 05:22:52 · 2300 阅读 · 0 评论 -
mysql安装及odbc配置相关
windows下:安装mysql:到mysql官网下载最新版mysql,进行默认安装,如果在“starting server”处出错,弹框,勿关闭,点确定重试,并进行下面两步操作:1、查找安装目录下的my.ini, 在最后添加一行:tmpdir="C:/MysqlTemp";2、控制面板 -> 管理工具 -> 服务 -> MYSQL56,手动启动它;对上面的弹框,继原创 2015-06-29 20:14:41 · 1673 阅读 · 0 评论 -
APUE函数笔记八: 信号
第十章 信号:0 < signo < NSIG#include void (*signal(int signo, void(*func)(int)))(int); if error return SIG_ERR, else return previous handler#include int kill(pid_t pid, int signo); pid:原创 2012-03-28 21:01:09 · 643 阅读 · 0 评论 -
__declspec(dllimport)的作用
是时候总结一下__declspec(dllimport)的作用了。可能有人会问:__declspec(dllimport)和__declspec(dllexport)是一对的,在动态链接库中__declspec(dllexport)管导出,__declspec(dllimport)管导出,就像一个国家一样,有出口也有进口,有什么难理解的呢?这是一种很自然的思路,开始我也是这样理解。转载 2014-04-29 17:27:18 · 769 阅读 · 0 评论 -
Ubuntu12.04编译安装Boost1.55
1. sourceforge上下载Boost1.55 2. 解压到 boost_1_55_0 3.原创 2014-04-13 15:08:11 · 2337 阅读 · 0 评论 -
curl编译,Windows/Ubuntu
windows下0. 如果需要openssl、zlib,则在编译curl之前,先要编译openssl和zlib,且三份源代码应放在同一级目录1. 下载安装包curl-7.33.0.zip (最新版本curl-7.36.0.zip,无法发邮件,别的新版本不清楚)2. 解压缩到curl-7.33.0目录下3. 打开VS的命令提示,比如我打开的:"D:\Program Files\M原创 2014-04-20 17:06:23 · 1478 阅读 · 0 评论 -
zlib编译,Windows/Ubuntu
windows下1.下载安装包zlib128.ziphttp://www.zlib.net/2.解压缩到D:\zlib-1.2.8目录下 3.编译 3.1 打开VS -> Visual Studio Tools -> Visual Studio 命令提示(2010) 3.2 切换到目录D:\zlib-1.2.8 3.3执行nmake -f win32/M原创 2014-04-20 14:47:42 · 1942 阅读 · 0 评论 -
Enhanced Assertions一文笔记
译文:http://blog.youkuaiyun.com/pongba/article/details/19129原创 2014-04-08 21:41:29 · 796 阅读 · 0 评论 -
linux下静态库的依赖顺序
贴下结论:LD在链接生成目标文件时, 会从左到有扫描输入的依赖库, 但是, 当依赖库之间也有依赖关系时,必须将”依赖别人的库”放在 “被别人依赖的库”的前面. 否则,会链接失败!原创 2014-04-28 17:08:26 · 3734 阅读 · 0 评论 -
windbg命令
windbg命令linux下使用ulimit -S -c unlimited命令,可以使程序崩溃时生成core文件,使用gdb exec_file core_file就可以查看崩溃的程序,接着使用bt就基本可以定位触发崩溃的代码段windows下没有这么方便,但可以使用procexp和windbg来达到相同的目的,程序崩溃后,可以打开procexp,然后在procexp中选择崩溃的程序,右原创 2014-09-14 02:18:51 · 780 阅读 · 0 评论 -
ansi、utf8、utf16、utf32、unicode 编码规则资料
http://demo.netfoucs.com/csfreebird/article/details/8570015http://blog.3snews.net/space.php?uid=40122&do=blog&id=66903原创 2014-10-28 18:20:20 · 800 阅读 · 0 评论