学习笔记
文章平均质量分 70
bitowang
这个作者很懒,什么都没留下…
展开
-
Unix环境高级编程 写dup2功能相同的函数
题目3.2 Write your own dup2 function that performs the same service as the dup2 function described in Section 3.12, without calling the fcntl function. Be sure to handle errors correctly.(实现自己的dup2函数,转载 2013-03-28 18:12:57 · 1456 阅读 · 0 评论 -
图解autoscan、aclocal、autoheader、automake、autoconf、configure、make
1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 your source files --> [autoscan*] --> [configure.scan] --> configure.ac2.aclocal (automake)转载 2013-03-25 15:52:24 · 686 阅读 · 0 评论 -
关于Linux中的链接
转载进注明出处:http://blog.csdn.net/footman_/article/details/68716881 索引节点(index node) Linux文件系统中,每个磁盘柱面都存在2个部分,即索引节点inode和实际数据块block。内核为每个文件分配一个称为索引节点的inode(该inode在系统中是唯一的),inode包含了文件的所有者、转载 2013-03-29 17:15:44 · 826 阅读 · 0 评论 -
SUID和SGID的详细解析
SUID和SGID的详细解析 由于SUID和SGID是在执行程序(程序的可执行位被设置)时起作用,而可执行位只对普通文件和目录文件有意义,所以设置其他种类文件的SUID和SGID位是没有多大意义的。首先讲普通文件的SUID和SGID的作用。例子:如果普通文件myfile是属于foo用户的,是可执行的,现在没设SUID位,ls命令显示如下:-rwxr-xr-x 1 f转载 2013-03-29 15:31:49 · 1450 阅读 · 0 评论 -
硬连接和软连接的原理
引子目前,UNIX的文件系统有很多种实现,例如UFS(基于BSD的UNIX文件系统)、ext3、ext4、ZFS和Reiserfs等等。不论哪一种文件系统,总是需要存储数据。硬盘的最小存储单位是扇区,数据所存储的最小单位则不是扇区,因为用扇区来存储效率就太低了。一个扇区只有512字节,而磁头是一个扇区一个扇区地读取,也就是说,如果文件是10MB,那么为了读这个文件,磁头必须要进行读转载 2013-03-29 16:50:19 · 1810 阅读 · 0 评论 -
在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态改动时间
在windows下,一个文件有:创建时间、修改时间、访问时间。而在Linux下,一个文件也有三种时间,分别是:访问时间{atime}、修改时间{mtime}、状态改动时间{ctime}。两者有此不同,在Linux下没有创建时间的概念,也就是不能知道文件的建立时间,但如果文件建立后就没有修改过,修改时间=建立时间;如果文件建立后,状态就没有改动过,那么状态改动时间=建立时间;如果文件转载 2013-03-30 09:56:39 · 788 阅读 · 0 评论 -
OpenCV学习笔记(一)——安装配置、第一个程序
决心开始研究OpenCV。闲言少叙,sourceforge网站最近的版本是2011年8月的OpenCV2.3.1,下载安装,我这里使用的开发环境是vs2008,网上搜了一下配置的教程,与之前的几个OpenCV版本的配置过程大体相同:(教程网上很多,知之为知之,不知百度之,我这里粗略再讲一下)1. 配置电脑的环境变量(Path变量)这里我的是D:\Program Files\OpenCV2.转载 2013-05-23 20:35:36 · 645 阅读 · 0 评论 -
OpenCV学习笔记(九)——2维特征Feature2D
基于特征点的图像匹配是图像处理中经常会遇到的问题,手动选取特征点太麻烦了。比较经典常用的特征点自动提取的办法有Harris特征、SIFT特征、SURF特征。先介绍利用SURF特征的特征描述办法,其操作封装在类SurfFeatureDetector中,利用类内的detect函数可以检测出SURF特征的关键点,保存在vector容器中。第二部利用SurfDescriptorExtractor类进行转载 2013-05-30 00:15:59 · 884 阅读 · 0 评论 -
OpenCV学习笔记(十)——图形交互和媒体接口HighGUI
OpenCV提供一个功能强大的UI接口,可以在MFC、Qt、WinForms、Cocoa等平台下使用,甚至不需要其他的平台。新版本的HighGUI接口包括:创建并控制窗口,该窗口可以显示图片并记录其内容为窗口添加了trackbars控件,可以方便利用鼠标进行控制而不是之前版本的只能利用键盘 读写硬盘和内存的图片 读取摄像头的视频、读写视频文件 先来介绍UI,包括函数createTra转载 2013-05-30 00:26:25 · 1561 阅读 · 0 评论 -
OpenCV学习笔记(十一)——谈谈像素的类型和对Templates的限制使用
Templates是c++的一个很强大的特征,可以是数据结构更加安全高效。但也会增加编译时间和代码的长度,当函数被频繁调用的时候便步那么高效,所以在目前的OpenCV版本不推荐过多的使用templates。矩阵元素可以是如下类型中的一种:• 8-bit unsigned integer (uchar)• 8-bit signed integer (schar)• 16-bit un转载 2013-05-30 00:28:20 · 808 阅读 · 0 评论 -
OpenCV学习笔记(十三)——模板匹配
寻找一幅图像的匹配的模板,可以在一段视频里寻找出我们感兴趣的东西,比如条形码的识别就可能需要这样类似的一个工作提取出条形码区域(当然这样的方法并不鲁棒)。而OpenCV已经为我们集成好了相关的功能。函数为matchTemplate。所谓模板匹配就是在一幅图像中寻找和模板图像(patch)最相似的区域。该函数的功能为,在输入源图像Source image(I)中滑动框,寻找各个位置与模板图像转载 2013-05-30 20:55:08 · 1144 阅读 · 0 评论 -
Windows 7 远程登录 Fedora 16
在windows 7 有时需要远程登录fedora的桌面,容易想到windows下的mstsc命令进行远程桌面的连接。网上常有的教程就是使用vncserver软件进而解决,但是在高版本的Fedora中gnome桌面会有桌面分享功能,可以在终端中使用vino-preferences进而打开,既方便又快捷,使用VNCServer的软件肯定有其不一样的性能。在使用桌面分享功能时,需要安装xrdp,可原创 2013-08-31 20:02:15 · 4183 阅读 · 0 评论 -
OpenCV学习笔记(二)——新版本模块结构
还是老话题,2.2版本对OpenCV可是进行了大刀阔斧的改革,用c++重新了大部分结构,而不是1.X版本中的c结构。这些模块包括:core——定义了基本数据结构,包括最重要的Mat和一些其他的模块imgproc——该模块包括了线性和非线性的图像滤波,图像的几何变换,颜色空间转换,直方图处理等等video——该模块包括运动估计,背景分离,对象跟踪calib3d——基本的多视角几何算法转载 2013-05-23 20:40:39 · 850 阅读 · 1 评论 -
OpenCV学习笔记(三)——Mat,图像的新容器
自从版本2.0,OpenCV采用了新的数据结构,用Mat类结构取代了之前用extended C写的 cvMat 和 lplImage,更加好用啦,最大的好处就是更加方便的进行内存管理,对写更大的程序是很好的消息。需要注意的几点:1. Mat的拷贝只是复制了Mat的信息头,数据的指针也指向了被拷贝的数据地址,而没有真正新建一块内存来存放新的矩阵内容。这样带来的一个问题就是对其中一个Mat转载 2013-05-23 20:56:44 · 789 阅读 · 0 评论 -
OpenCV学习笔记(四)——新版本的数据结构core
2.0新版本对数据结构进行了大幅修改:定义了DataType类定义了Point_模板类,取代了之前版本的CvPoint、CvPoint2D32f定义了Point3_模板类,取代了之前版本的CvPoint2D32f定义了Size_模板类,取代了之前版本的CvSize和CvSize2D32f定义了Rect_模板类,取代了之前版本的CvRectRotate转载 2013-05-23 21:01:25 · 747 阅读 · 0 评论 -
OpenCV学习笔记(五)——2.0以上版本和以下版本的数据兼容
都知道,2.0版本对之前的OpenCV数据结构进行了大幅度的修改。但对之前版本的兼容是一个很重要的事情。这节就主要讨论这个问题首先来看一下2.0版本对之前版本的进行了哪些修改1.采用了新的数据结构Mat作为图像的容器,取代了之前的 CvMat 和 lplImage,这个改动不是太复杂,只需适应一下新东西,而且可以自由转换Mat I;IplImage pI = I;CvMat m转载 2013-05-23 21:05:36 · 727 阅读 · 0 评论 -
OpenCV学习笔记(七)——图像处理之滤波器ImgProc
先介绍几个最基本的核滤波器相关的类2D图像滤波器基础类BaseFilter :dst(x,y) = F(src(x,y), src(x+1,y)... src(x+wdith-1,y), src(y+1,x)... src(x+width-1, y+height-1) ); 相关的调用函数为getLinearFilter、getMorphologyFilter单行核滤波器基础类Base转载 2013-05-24 23:35:12 · 982 阅读 · 0 评论 -
OpenCV学习笔记(六)——对XML和YAML文件实现I/O操作
1. XML、YAML文件的打开和关闭XML\YAML文件在OpenCV中的数据结构为FileStorage,打开操作例如:string filename = "I.xml"; FileStorage fs(filename, FileStorage::WRITE); \\... fs.open(filename, FileStorage::READ); :文转载 2013-05-24 23:28:05 · 1269 阅读 · 0 评论 -
OpenCV学习笔记(八)——图像处理之直方图ImgProc
直方图histograms也是图像处理中经常用到的一种手段。新版本对直方图不再使用之前的histogram的形式,而是用统一的Mat或者MatND的格式来存储直方图,可见新版本Mat数据结构的优势。先介绍下其相关的函数calcHist、calcBackProject、compareHist、EMD、equalizeHist。除了这几个常用的函数以为,还有一些c函数写的直方图类CvHistogr转载 2013-05-25 20:23:13 · 1271 阅读 · 0 评论 -
OpenCV学习笔记(十二)——随机数产生器RNG
用OpenCV做算法的朋友们肯定为随机数烦恼过,新版本一直支持随机数产生器啦,而且还继续支持之前版本的c格式的函数,不过与时俱进,我这里介绍C++的RNG类。它可以压缩一个64位的i整数并可以得到scalar和array的随机数。目前的版本支持均匀分布随机数和Gaussian分布随机数。随机数的产生采用的是Multiply-With-Carry算法和Ziggurat算法。其构造函数的初始化可以转载 2013-05-30 00:31:56 · 4288 阅读 · 0 评论 -
MySQL 5.7 root登录问题
安装完成后,当使用 mysql -u root -p 登录时,出现下面错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)原创 2016-03-24 12:51:22 · 2737 阅读 · 1 评论 -
头文件的使用出现的情况
今天做LCD屏幕显示汉字的demo程序,需要调用字库文件,为了简便起见,把字库文件中的字符按照一定的数据格式保存到一个数据结构中,大约存了10个汉字,出现这个问题:字符重复定义的错误。把汉字的数据放到一个数组中,保存在头文件中,在此头文件中使用了类似#ifndef ### #endif这样的语句,当有多个语句包含的时候出现重复定义的错误,通过从网上搜索相应的问题发现,变量的定义一般在源文件中(cp原创 2013-03-05 22:26:06 · 7962 阅读 · 0 评论 -
OpenGL学习总结
一.OpenGL是做什么的一种图形硬件的接口。而不是像C和C++一样的编程语言,更像是一个运行库,提供一些预先封装的函数。二.OpenGL的主要功能是什么建模,变换,颜色模式设置,光照和材质设置,纹理映射,位图显示和图像。三.OpenGL的体系结构是什么最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,第五层为应用软件。四.转载 2012-08-07 17:14:02 · 778 阅读 · 0 评论 -
IAR error: a declaration cannot have a label
在使用switch时 在case 后面申请变量会出现 error: a declaration cannot have a label错误 原因:Case statements are only 'labels'. This means the compiler will interpret this as a jump directly to the label.The probl原创 2012-09-04 11:25:04 · 5974 阅读 · 2 评论 -
《一个操作系统的实现》阅读笔记 之 开发『调试』环境bochs的搭建
导读:统一思想: 道篇: 有效而愉快的学习;学习到过程应该是由感性到理性;暂时的错误并不可怕;挡住去路的,往往不是大树,而是小藤; 术篇: 用到什么学习什么;只要用心就没有学不会的东西;适当地囫囵吞枣;第一章:马上动手写一个最小的操作系统 引导扇区:电源开启后,自检原创 2012-08-27 17:00:59 · 1082 阅读 · 0 评论 -
Linux系统调用列表
以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。 按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户调用的系统转载 2012-10-29 20:47:20 · 640 阅读 · 0 评论 -
Linux 系统调用的实现及其汇编代码的嵌入到C中
一、关于系统调用linux 里面的每个系统调用是靠一些宏,一张系统调用表,一个系统调用入口来完成的。函数1.宏 就是_syscallN(type,name,x...) 其中N是系统调用所需的参数数目,type是返回类型,name即面向用户的系统调用函数名,x...是调用参数,个数即为N。例如:#define _syscall3(type,name,type1,arg1,t转载 2012-10-29 21:37:15 · 2650 阅读 · 0 评论 -
C语言中的数组指针与指针数组
一、指针数组和数组指针的内存布局指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。下面到底哪个是数组指针,哪个是指针数组呢:A)int *p1[10];B)int (*p2)原创 2012-10-22 21:52:37 · 1113 阅读 · 0 评论 -
如何修改远程登录3389端口
如何修改远程登录3389端口为了使Windows独享主机远程登陆更加安全,经常能够遇到客户询问如何修改远程桌面端口的问题,下面就详细说明一下具体方法:要在注册表中修改两个地方3389是默认远程端口,改成别的比如6565,注册表有2个地方需要修改: 第一个地方: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Termin转载 2012-10-25 11:24:36 · 1471 阅读 · 0 评论 -
typedef的用法
1、 为现有数据类型定义同义词 typedef 使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。例如:typedef int size; 此声明定义了一个 int 的同义字,名字为 size。注意typedef 并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要 int 的上下文中使用 size: void measure(size原创 2012-11-04 22:19:14 · 473 阅读 · 0 评论 -
C语言优先级
1、优先级图表优先级最高者不是真正意义上的运算符,包括:数组下标,函数调用,结构体成员选择符。单目运算符的优先级次之。(! ~ ++ -- - (type) * & sizeof)然后是双目运算符。双目运算符里, 算数运算符(* / % + -)优先级最高, 移位(>)次之, 关系运算符( >= != ==)再次之, 接着是位运算符(& ^ | ),逻辑运算符(&& ||) 条原创 2012-10-28 22:14:26 · 3482 阅读 · 0 评论 -
液晶显示器汉字字模存储及显示
一、3 种汉字字模存储和提取的方法1、字模存放在程序存储器中; 这种方法较为常用,针对程序不大或单片机无外部扩展数据存储区功能的情况。2、通过外扩的EEPROM 存储汉字字模数据,将其作为外部数据存储器进行寻址; 采用哈佛结构的单片机,如8051 单片机及其派生产品,程序存储器(ROM)和数据存储器(RAM)可分别寻址,51 单片机ROM 和RAM 最大原创 2012-08-17 19:16:18 · 7730 阅读 · 0 评论 -
ASCII码字库的显示
tslib源代码时就注意到里面有font_8x8.c和font_8x16.c两个文件(它们来自Linux内核,具体目录是./drivers/video),它们包含了在屏幕上显示所需的所有字符(可打印字符),由此也看了一下tslib显示字符的代码。字符当然是ASCII码了,通过ASCII码字库文件(网上有下载)和在终端上显示ASCII字符。使用的字库是8x16,每个字符占用内存空间为16字节,文原创 2012-08-17 19:07:33 · 8288 阅读 · 0 评论 -
IAR for MSP430 编译时出现Error[Pe099]: a declaration here must declare a parameter 错误
用 iar 编译工程的时候。出现 提示这样一大堆错误。几千个。Warning[Pe231]: declaration is not visible outside of functionWarning[Pe099]: a declaration here must declare a parameter Error[Pe085]: invalid storage cla转载 2012-09-01 23:42:54 · 7102 阅读 · 0 评论 -
GNU make的执行过程
make的执行过程如下:1. 依次读取变量“MAKEFILES”定义的makefile文件列表2. 读取工作目录下的makefile文件(根据命名的查找顺序“GNUmakefile”,“makefile”,“Makefile”,首先找到那个就读取那个)3. 依次读取工作目录makefile文件中使用指示符“include”包含的文件4. 查找重建所有已读取的makefi转载 2013-01-17 16:16:21 · 1493 阅读 · 0 评论 -
ARM LR寄存器
MOV PC,LR看下面这个ARM汇编吧BL NEXT ;跳转到子程序......... ;NEXT处执行NEXT..........MOV PC,LR ;从子程序返回这里的BL是跳转的意思,LR(R14)保存了返回地址PC(R15)是当前地址,把LR给PC就是从子程序返回这里有一下总结首先1.SP(R13) LR(R14)PC(R15)2.转载 2013-01-21 15:20:15 · 20734 阅读 · 3 评论 -
Shell 脚本编程
1 执行shell的方法 指定shell #!/bin/sh 由sh运行脚本 脚本总是由sh解释 显示调用shell sh scriptname 在当前shell中运行脚本 ~/.profile (.profile是可执行的)ksh ~/.profile (.profile是不可执行的) 改变当前的运行环境责应输入.~/.profile (原创 2013-01-21 15:28:56 · 766 阅读 · 0 评论 -
配置内核 Makefile:1449: *** mixed implicit and normal rules. Stop.
在编译内核的时候提示Makefile:1449: *** mixed implicit and normal rules. Stop. 在网上查找后得到如下原因:翻译为中文:混合的和隐含普通规则 是由于我的系统的make工具太新(系统:fedora15),make的旧版规则已经无法兼容新版。按照以下方式,问题得到解决:原创 2013-01-21 15:19:47 · 7905 阅读 · 0 评论 -
《一个操作系统的实现》阅读笔记 之 保护模式
一、认识保护模式 1 保护模式,(Protected Mode,或有时简写为 pmode) 是一种 80286 系列和之后的 x86 兼容 CPU 操作模式。保护模式有一些新的特色,设计用来增强 多工 和系统稳定度,像是 内存保护,分页 系统,以及硬件支援的 虚拟内存。 2 运行环境 由于引导扇区的大小只有512字节,如果程序写的大于5原创 2013-01-16 16:16:15 · 1057 阅读 · 0 评论 -
Fedora 简单应用之 yum
一、Freshrpms.net 资源介绍,yum 的应用1、Freshrpms.net 的GPG签名;GPG签名是用来验证软件包的完整性和安全性, 对于系统安全比较重要,在使用Freshrpms.net 的软件包时,需要把站上的GPG签名导入;导入方法 rpm --import http://freshrpms.net/RPM-GPG-KEY-freshrpms2、Freshrp原创 2013-01-21 15:27:59 · 605 阅读 · 0 评论