c/c++
嵌入式linux
持续积累,持续提高
展开
-
NAT 穿越开源
目前个人学习的主要两种方式1. libnice原创 2014-05-23 15:10:51 · 3394 阅读 · 0 评论 -
Opencv Mat 多通道时 元素访问问题
这里只给出实例代码,具体的自己琢磨。 cv::Mat processMat; for (row = 0; row < processMat.rows; row++) { for (col = 0; col < processMat.cols; col++) { processMat.at(row, col)[0] =原创 2014-01-04 21:56:54 · 4847 阅读 · 1 评论 -
opencv中Mat使用
(一)Mat矩阵中数据指针Mat.data是uchar类型指针,CV_8U系列可以通过计算指针位置快速地定位矩阵中的任意元素。二维单通道元素可以用Mat::at(i, j)访问,i是行序号,j是列序号。但对于多通道的非unsigned char类型矩阵来说,以上方转载 2014-01-04 21:50:51 · 2414 阅读 · 0 评论 -
Libnids---编写网络应用程序的利器
http://blog.csdn.net/nutchlover/article/details/7556986一.前言 Libnids是一个用于网络入侵检测开发的专业编程接口,它使用Libpcap进行数据包的捕获。同时,Libnids提供了TCP/IP数据流重组功能,因此省去了应用层自己考虑数据分片、重传等情况的麻烦。它是模仿了Linux 2.0.x的IP协议栈进行数据处理,因此转载 2013-12-18 16:26:56 · 1094 阅读 · 0 评论 -
C语言 指针出参使用方法
错误方法:void GetMemory(char *str, int size){ char * p = (char *)malloc(size); str = p;}int main(){ char *pstr = NULL; GetMemory(pstr, 20); strcpy(pstr, "Hello world"); r原创 2013-12-18 11:16:54 · 2755 阅读 · 0 评论 -
c++ 带参数构造全局变量实现方法
参加一下代码。#include "stdafx.h"#include #include class Test{public: int a; int b; Test(); Test(int c); // 带参数构造函数 ~Test();};Test::Test(int c){ a = c;}Test * createTestObject(){ Tes原创 2013-12-17 10:19:16 · 1859 阅读 · 0 评论 -
Android NDK纯C++开发(1)
要开发纯C++的android程序,有两种方法:native_activity.h和android_native_app_glue.h。当然本质上是一样的,android_native_app_glue.h是对native_activity.h的封装,所以,很显然,推荐的方法是使用android_native_app_glue.h。在/sources/android\native_app_gl转载 2013-12-15 11:30:37 · 1512 阅读 · 0 评论 -
Android NDK纯C++开发(2)
继续了解使用native_app_glue来编写纯C++的Android NDK开发。下面从一个"最简单“的可运行的程序来了解native_app_glue程序的基本组成。1. 源码main.cpp:[cpp] view plaincopyprint?// main.cpp #include /** * This is the main en转载 2013-12-15 11:59:51 · 1442 阅读 · 0 评论 -
堆栈比方
一般情况下,穿衣服好比栈,先穿进去的,后脱掉。穿得不多不少,很轻松,没问题;穿多了,人也会行动慢,甚至崩溃。戴首饰好比堆,基本随便找个地方多可以带,什么时候取下来,不确定。正常情况下,自己戴上去的自己取下来,别人戴上去的别人取下来。自己戴上去别人取下来或别人带上的你偷偷取下来会闹矛盾的。一般情况下,你的首饰不能带到身体的内部,脑袋里更不行。然想到的,小记一下。原创 2013-12-13 09:21:33 · 881 阅读 · 0 评论 -
ConvertScale,cvConvert , cvScale
ConvertScale使用线性变换转换数组void cvConvertScale( const CvArr* src, CvArr* dst, double scale=1, double shift=0 );#define cvCvtScale cvConvertScale#define cvScale cvConvertScale转载 2013-12-02 11:15:09 · 3345 阅读 · 0 评论 -
opencv数据容器Mat,cvMat和IplImage
opencv数据容器Mat,cvMat和IplImage 分类: opencv2012-09-02 21:181175人阅读评论(0)收藏举报vectorfloatstructimage优化数据结构opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,转载 2014-01-04 15:27:02 · 1169 阅读 · 0 评论 -
Androi NDK生成 找不到对应的C的函数异常
前两天一直遇到个问题,就是用javah 生成的头文件,用NDK编译后提示,找不到对应的接口,很奇怪的问题。 因为之前我用的是范例中的代码,直接按扎代码格斯copy了相应接口编译,没有问题。可是当自己用javah生成,却不能够使用。 后来对比了生成的代码和自己手写的代码的区别,发现自动成的的接口是这样的:JNIEXPORT jlong JNICALL Java_org_o原创 2013-12-20 21:09:12 · 1660 阅读 · 0 评论 -
opencv BackgroundSubtractorMOG2重要方法
BackgroundSubtractorMOG2 重要方法1. BackgroundSubtractorMOG2 的构造函数 C++: BackgroundSubtractorMOG2::BackgroundSubtractorMOG2() 采用默认值进行构造BackgroundSubtractorMOG2的对象。 C++: BackgroundSubtract原创 2014-01-06 10:33:45 · 10686 阅读 · 0 评论 -
[SSL/TLS] SSL/TLS协议综合总结
密码技术 要了解SSL协议,首先要了解:加密算法、消息摘要算法(又称为哈希算法Hash),数字签名等概念。这些技术每个都可以写出一整本的书,它们结合在一起,提供了保密性、完整性和身份验证的功能。加密算法设想:ALICE想发消息给她的银行要汇出一笔款。ALICE希望这些消息是保密的,因为这里面包括她的帐户资料和汇款金额。一种办法是使用加密算法,这种技术将她要传递的消息变成经过加密的密转载 2014-04-02 16:08:27 · 1189 阅读 · 0 评论 -
Linux下的IPC-UNIX Domain Socket
一、 概述UNIX Domain Socket是在socket架构上发展起来的用于同一台主机的进程间通讯(IPC),它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。UNIX Domain Socket有SOCK_DGRAM或SOCK_STREAM两种工作模式,类似于UDP和TCP,但是面向消息的UNIX Domain Socke转载 2014-04-18 08:54:49 · 1098 阅读 · 0 评论 -
Makefile 隐含规则
1. C .o的目标用来文件会被自动推导为.c, 并且命令为: $(CC) -c $(CPPFLAGS) $(CFLAGS) 2. C++ .o的目标用来文件会被自动推导为.cc或.C, 并且命令为: $(CXX) -c $(CPPFLAGS) $(CFLAGS) 所以在使用默认的推导过程是,如果需要修改编译器或是一些FLAG的值,可原创 2014-02-27 14:47:49 · 919 阅读 · 0 评论 -
pthread_detach
创建一个线程默认的状态是joinable, 如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出状态码),所以创建线程者应该调用pthread_join来等待线程运行结束,并可得到线程的退出代码,回收其资源(类似于wait,waitpid)但是调用pthread_join(pthread_id)后,如果该线程没有运行结束,转载 2014-02-24 15:57:51 · 652 阅读 · 0 评论 -
linux sed 命令记录
1. sed -e 's/true/false/' test.xml > bak.xml 查找替换后test.xml文件不变,bak.xml中为替换后的信息。 /s表示替换 2.sed -i 's/true/false/' test.xml 查找替换后test.xml文件改变 -i 便是就地修改。原创 2014-01-16 10:47:18 · 883 阅读 · 0 评论 -
linux 动态库路径配置问题
1.符号连接方式 用ln将需要的so文件链接到/usr/lib或者/lib这两个默认的目录下边原创 2014-01-22 14:41:50 · 790 阅读 · 0 评论 -
Android连接手机后无法访问SD卡
问题:mv /data/test.jpg /sdcard/test.jpg失败。得到答复是:“failed on '/sdcard/tetest.jpg‘- Cross-device link”,也就是说mv命令不允许将存储卡中的文件复制到/system/或/data/分区中,因为两者被认为是在不同的设备上。将手机中的默认的USB存储关闭。再在adb shell中取尝试访问。cat原创 2013-12-26 16:08:27 · 1557 阅读 · 0 评论 -
Buildroot 编译器配置
buildroot编译时需要先make personal-config-files,然后make。make personal-config-files执行完后会在.config中生成临时的配置共buildroot使用。 1)在buildroot的configs文件中指定编译选项。 如: BR2_TOOLCHAIN_EXTERNAL=y原创 2014-01-10 15:24:30 · 4188 阅读 · 0 评论 -
NTSC和PAL 区别和联系
很多人都知道有NTSC和PAL两大制式,那到底什么是NTSC制式?什么是PAL制式呢?简单的说,NTSC和PAL属于全球两大主要的电视广播制式,但是由于系统投射颜色影像的频率而有所不同。NTSC是National Television Standards Committee的缩写,其标准主要应用于日本、美国,加拿大、墨西哥等等,NTSC标准从他们产生以来除了增加了色彩信号的新参数之外没有太大的转载 2014-01-08 14:22:09 · 5269 阅读 · 0 评论 -
Javah 常见错误记录
简介javah可以用来将java中定义的native的接口生成对应的C/C++的接口,生成.h文件。具体的c/cpp的文件的实现则需要自己实现。开发者可以任意编写,但是编写中需要在.h中的接口中实现函数调用,这样就实现了java调用c/cpp了。至于编译,对于c/cpp的代码,需要配置NDK来进行编译。这个相关的说明很多。 1. 首先参考一下链接中的说明:http://www.原创 2013-11-10 21:22:26 · 1144 阅读 · 0 评论 -
timegm Linux
Nametimegm, timelocal - inverses of gmtime and localtime Synopsis#include time.h>time_t timelocal(struct tm *tm);time_t timegm(struct tm *tm);Feature Test Macro Requirements for glibc (s转载 2013-11-14 14:44:15 · 3820 阅读 · 0 评论 -
Lighttpd 配置与性能优化
Lighttpd 配置与性能优化前提:还是针对高负载,静态页面,freebsd系统的web应用。如果非要在LSWS(LiteSpeed Web Server)和lighttpd中间做的选择的话,我觉得是困难的。从现存的网上资料中很难有个权威的说法。因为测试没有特别的标准。例如在当前情况下,web server的配置是不是达到最优,甚至当你只对一中webserver测试的时候,你也会发现同种转载 2013-11-28 09:28:17 · 4368 阅读 · 0 评论 -
gcc -M 选项 以及Makefile隐含规则
一、gcc -M 选项在《跟我学写Makefile》中有讲自动生成依赖关系在Makefile中,我们的依赖关系可能会需要包含一系列的头文件,比如,如果我们的main.c中有一句“#include "defs.h"”,那么我们的依赖关系应该是:main.o : main.c defs.h但是,如果是一个比较大型的工程,你必需清楚哪些C文件包含了哪些头文件,并且,你在加入或删除头文件时原创 2013-08-28 08:05:41 · 3035 阅读 · 0 评论 -
Ace引擎和Jet引擎读取Excel
http://www.cnblogs.com/pirlo/archive/2009/09/09/1563368.html以前操作Excel的话,一般都会去用Microsoft.Jet.OLEDB.4.0引擎去读取的,但是,这样会有一个问题,就是如果office 2007的话,就出事情了,而且,Microsoft.Ace.OLEDB.12.0还可以访问正在打开的excel而Mricosoft.J转载 2013-08-22 09:09:45 · 2992 阅读 · 0 评论 -
C中的预编译宏定义
转自:http://www.uml.org.cn/c++/200902104.asp 在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理.C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理,转载 2013-07-31 09:58:43 · 851 阅读 · 0 评论 -
详解coredump
一,什么是coredump 我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。 通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆转载 2013-07-02 19:37:21 · 934 阅读 · 0 评论 -
gdb core 调试
signalfunctionlibraryfilecrashcmd1. 前言:有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的.但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们的调试变得困难起来.2. gdb:有一种办法是, 我们用gdb的step, 一步一步寻找. 这放在短小的代码中是可转载 2013-07-02 19:09:01 · 873 阅读 · 0 评论 -
C语言字节对齐
http://blog.csdn.net/miao6664659/article/details/8113113文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,转载 2013-01-28 09:10:11 · 736 阅读 · 0 评论 -
linux 共享内存shm_open实现进程间大数据交互
原文:http://www.oschina.net/code/snippet_237505_8645 /*int shm_open(const char *name, int oflag, mode_t mode);//创建或打开一个共享内存,成功返回一个整数的文件描述符,错误返回-1。1.name:共享内存区的名字;2.标志位;open的标志一样3.权限位转载 2012-11-12 09:52:33 · 1521 阅读 · 0 评论 -
C++内存管理
[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权转载 2012-09-21 09:31:11 · 1436 阅读 · 0 评论 -
c/c++内存管理参考文章
参考网站:http://soft.yesky.com/lesson/110/2381610.shtml步骤:1)了解内存管理的方式2)借助内存分析的工具分析内存使用。3)分析实现中的内存,进行优化。原创 2012-09-21 10:34:40 · 837 阅读 · 0 评论 -
libcurl
http://www.cppblog.com/qiujian5628/archive/2008/06/28/54873.htmllibcurl使用心得 Libcurl为一个免费开源的,客户端url传输库,支持FTP,FTPS,TFTP,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP,跨平台,支持Windows,Unix,Linux等,线程安全,支持Ipv6。并且易于转载 2013-08-28 12:36:25 · 896 阅读 · 0 评论 -
使用gSOAP开发实例(3) iconv解决中文乱码问题 .
http://blog.csdn.net/yui/article/details/5753879电信provisioning系统中,常常需要与远程服务器实时交换一些数据,以完成用户的请求。由于简单对象访问协议(Simple Object Access Protocol, SOAP)的流行,许多涉及到第三方的应用,我们一般都比较乐意使用SOAP来开发。不过,由于可能涉及到公司的机密,本系列教程的转载 2013-09-17 11:27:08 · 1014 阅读 · 0 评论 -
使用gSOAP开发实例(4) iconv解决中文乱码问题(续) .
http://blog.csdn.net/yui/article/details/5758906 电信provisioning系统中,常常需要与远程服务器实时交换一些数据,以完成用户的请求。由于简单对象访问协议(Simple Object Access Protocol, SOAP)的流行,许多涉及到第三方的应用,我们一般都比较乐意使用SOAP来开发。不过,由于可能涉及到公司的机密,本系列转载 2013-09-17 11:33:38 · 1003 阅读 · 0 评论 -
Camshift算法
http://blog.csdn.net/seawaywjd/article/details/7458196算法工作2010OpenCV的人脸追踪算法Camshift(连续自适应的Meanshift算法)由以下四个步骤组成:1、创建一个颜色直方图表示人脸特征;2、对视频图像中每一帧的每一个像素进行计算“人脸存在的可能性”;3、在每个视频帧中移动人脸矩形框的位置;4、计算转载 2013-11-13 09:23:35 · 1293 阅读 · 0 评论 -
Android.mk 语法参考文件
下载NDK,最好使用r8版本以后的,因为之后的版本不需要再去配置cygwin了。解压,配置NDK的路径,windows中配置环境变量即可。参考文件:~\docs\ANDROID-MK.html详细阅读说明文档。 后续考虑在Android.mk中编译出多个so文件。原创 2013-11-12 10:02:37 · 1187 阅读 · 0 评论 -
Android Development with OpenCV
This tutorial has been created to help you use OpenCV library within your Android project.This guide was written with Windows 7 in mind, though it should work with any other OS supported by OpenCV转载 2013-11-12 08:01:56 · 1893 阅读 · 0 评论