Linux
文章平均质量分 94
yishuige
这个作者很懒,什么都没留下…
展开
-
C语言正则表达式详解 regcomp() regexec() regfree()详解
标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。C语言处理正则表达式常用的函数有regcomp()、regexec()、regfree()和regerror(),一般分为三个步骤,如下所示:转载 2016-05-18 19:11:52 · 308 阅读 · 0 评论 -
C++静态库与动态库
C++静态库与动态库这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存转载 2016-06-12 10:09:27 · 297 阅读 · 0 评论 -
fopen、fseek、fread、fclose
FILE文件流用于对文件的快速操作,主要的操作函数有fopen、fseek、fread、fclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满足编程中的需要。以下分别进行说明,还有他们使用时的注意事项fopen函数原型 FILE * fopen(const char *path,cost char *mode)作用转载 2016-09-18 08:40:58 · 413 阅读 · 0 评论 -
sqlite3实例
#include #include #include using namespace std;void doTest(){ sqlite3* conn = NULL; //1. 打开数据库 int result = sqlite3_open("D:/mytest.db",&conn); if (result != SQLITE_OK) {转载 2016-09-18 09:17:10 · 937 阅读 · 0 评论 -
SQLite接口
1. 核心对象: 在SQLite中最主要的两个对象是,database_connection和prepared_statement。database_connection对象是由sqlite3_open()接口函数创建并返回的,在应用程序使用任何其他SQLite接口函数之前,必须先调用该函数以便获得database_connnection对象,在随后的其他APIs转载 2016-09-18 10:48:31 · 1010 阅读 · 0 评论 -
sqlite3_column
这个过程从执行sqlite3_step()执行一个准备语句得到的结果集的当前行中返回一个列。每次sqlite3_step得到一个结果集的列停下后,这个过程就可以被多次调用去查询这个行的各列的值。对列操作是有多个函数,均以sqlite3_column为前缀const void *sqlite3_column_blob(sqlite3_stmt*, int iCol);int sqli转载 2016-09-18 14:58:26 · 3425 阅读 · 0 评论 -
stat和fstat
linux stat函数讲解stat函数讲解表头文件: #include #include 定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值:转载 2016-09-19 07:57:53 · 1106 阅读 · 0 评论 -
S_ISDIR 常见的宏
S_ISLNK(st_mode):是否是一个连接.S_ISREG(st_mode):是否是一个常规文件.S_ISDIR(st_mode):是否是一个目录S_ISCHR(st_mode):是否是一个字符设备.S_ISBLK(st_mode):是否是一个块设备S_ISFIFO(st_mode):是否 是一个FIFO文件.S_ISSOCK(st_mode):是否是一个SO转载 2016-09-19 08:02:24 · 721 阅读 · 0 评论 -
link unlink
* 函数介绍:unlink()会删除参数pathname指定的文件,文件夹处理不了。成功返回0,否则返回1。unlink()会删除参数pathname指定的文件。如果该文件名为最后连接点,但有其他进程打开了此文件,则在所有关于此文件的文件描述词皆关闭后才会删除。如果参数pathname为一符号连接,则此连接会被删除。 * 头文件:unistd.h */ #incl转载 2016-09-19 08:35:21 · 334 阅读 · 0 评论 -
strpbrk函数
函数原型:extern char *strpbrk(char *str1, char *str2)参数说明:str1待比较的字符串,str2为指定被搜索的字符串。 所在库名:#include 函数功能:比较字符串str1和str2中是否有相同的字符,如果有,则返回该字符在str1中的位置的指针。 返回说明:返回指针,搜索到转载 2016-09-19 08:51:27 · 366 阅读 · 0 评论 -
OpenCV的基本数据结构及示例
OpenCV的基本数据结构及示例OpenCV中强大的Mat类型大家已经比较熟悉了。这里梳理一些在工程中其他经常用到的几种基本数据类型。包括: Vec Scalar Point Size Rect RotatedRect1. Vec类1.转载 2016-09-23 10:02:35 · 1242 阅读 · 1 评论 -
OpenCV的基本矩阵操作与示例
OpenCV的基本矩阵操作与示例OpenCV中的矩阵操作非常重要,本文总结了矩阵的创建、初始化以及基本矩阵操作,给出了示例代码,主要内容包括:创建与初始化矩阵加减法矩阵乘法矩阵转置矩阵求逆矩阵非零元素个数矩阵均值与标准差矩阵全局极值及位置其他矩阵运算函数列表1. 创建与初始化矩阵1.1 数据类型建立矩阵必须要指定矩阵存储的数据类型转载 2016-09-23 10:11:52 · 1973 阅读 · 0 评论 -
findfirst findnext
一、这两个函数均在io.h里面。二、首先了解一下一个文件结构体:struct _finddata_t { unsigned attrib; time_t time_create; time_t time_access; time_t time_write; _fsize_t转载 2016-09-21 14:51:15 · 341 阅读 · 0 评论 -
haarcascade人脸检测
#define _CRT_SECURE_NO_WARNINGS#include #include #include #include #include #include #include using namespace std;const string kAlt2 = "haarcascade_frontalface_alt2.xml";int转载 2016-09-21 15:01:32 · 1275 阅读 · 0 评论 -
Git
http://www.runoob.com/git/git-tutorial.htmlGithub 简明教程基本概念我们先来理解下Git 工作区、暂存区和版本库概念工作区:就是你在电脑里能看到的目录。暂存区:英文叫stage, 或index。一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)转载 2016-10-18 15:34:05 · 366 阅读 · 0 评论 -
Git分支管理策略
Git分支管理策略相比同类软件,Git有很多优点。其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便。有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称"快照")的指针,因此非常快捷易用。但是,太方便了也会产生副作用。如果你不加注意,很可能会留下一个枝节蔓生、转载 2016-10-18 15:38:26 · 336 阅读 · 0 评论 -
tm结构
在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:#ifndef _TM_DEFINEDstruct tm { int tm_sec; /* 秒 – 取值区间为[0,59] */ int tm_min; /* 分 - 取值区间为[0,59] */ int转载 2016-05-31 11:36:05 · 2550 阅读 · 0 评论 -
strdup
函数名: strdup功 能: 将串拷贝到新建的位置处用 法: char *strdup(char *str); 这个函数在linux的man手册里解释为:The strdup() function returns a pointer toa new string which is aduplicate of the strin转载 2016-05-31 10:48:41 · 440 阅读 · 0 评论 -
rpm命令
Linux rpm 命令参数使用详解[介绍和应用]RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。常用转载 2016-05-27 13:15:34 · 302 阅读 · 0 评论 -
内核树作用
设备驱动程序是内核的一部分 所以它采用内核的头文件和库,所以在Linux发现版本里可能并没有这些东西 所以需要下载内核版本然后编译生成源码树,以准备好驱动编译所需要的头文件和库1.源码树中有相应的头文件和函数的实现,没有源码树,无法调用PC上编译的时候内核有导出符号,系统有头文件,这样就可以引用内核给你接口了。但只能编译你PC上的内核可加载的模块2.内核模块中会记录版本号的部分转载 2015-11-19 10:30:16 · 776 阅读 · 0 评论 -
list_entry()
Linux内核中,获取节点地址的函数list_entry()非常常用,由于其定义有点晦涩,先解析如下:list_entry的宏定义:#define list_entry(ptr, type, member) / ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) 这个倒是不难理解转载 2015-12-30 13:31:20 · 230 阅读 · 0 评论 -
linux内核 80x86保护模式及其编程
这一章涉及intel8086系列cpu的保护模式编程,应该是学习内核编程,驱动编程及嵌入式编程一些基础知识。不过对于没接触过底层编程的我来说,感觉还是好复杂。 不过里面也有许多以前汇编学过的东西,大部分还是能看懂的。我觉得图表就能说明大部分内容了,细节东西,不能都做笔记,所以大部分笔记都是图表- -。1,首先是关于8086cpu的各个标志寄存器,其内容如下: 2,内存管理的寄存器,主转载 2015-12-30 15:06:36 · 2037 阅读 · 0 评论 -
实模式和保护模式区别及寻址方式
实模式和保护模式区别及寻址方式转载请注明出处:http://blog.csdn.net/rosetta64KB-4GB-64TB? 我记得大学的汇编课程、组成原理课里老师讲过实模式和保护模式的区别,在很多书本上也有谈及,无奈本人理解和感悟能力实在太差,在很长一段时间里都没真正的明白它们的内含,更别说为什么实模式下最大寻址空间为1MB?段的最大长度不超过64KB?而保护模式下为转载 2015-12-30 17:37:55 · 857 阅读 · 0 评论 -
Linux系统启动过程
Linux系统启动过程大致按照如下步骤进行(这是一个简述):第一阶段:BIOS启动引导阶段; 在该过程中实现硬件的初始化以及查找启动介质; 从MBR中装载启动引导管理器(GRUB)并运行该启动引导管理第二阶段:GRUB启动引导阶段;转载 2015-12-31 14:24:25 · 402 阅读 · 0 评论 -
linux内存管理各文件简介
linux内存管理各文件简介转自: http://blog.csdn.net/u011955950/article/details/188603791、内存分配机制page_alloc:伙伴分配系统debug-pagealloc:伙伴分配系统辅助函数slab、slub、slob:基于伙伴系统之上的内存分配算法huge_memory转载 2015-12-31 16:19:30 · 666 阅读 · 1 评论 -
内存管理
《深入理解LINUX内存管理》学习笔记 引子为什么要写这个笔记:1,这本书的中文版翻译了太垃圾,没法阅读。阅读英文原版,可以很好的理解作者的思路。作此笔记备忘2,一直以来学习LINUX kernel的知识缺乏系统化,借对这本书的学习,系统化的学习一下LINUX ke转载 2015-12-31 17:44:18 · 812 阅读 · 0 评论 -
Tizen 架构
Tizen 架构Tizen 平台支持Web 应用程序,并且Tizen SDK为Web API提供了详解的说明文档。下面的插图是适用于智能手机和平板的Tizen架构图。总共包括三层:应用,核心,内核。 应用层Tizen支持Web应用程序。Tizen Web应用程序能像本地应用程序那样充分地发挥出平台的能力。核心层核心层包括:Tizen API和Tizen核心服转载 2016-02-15 16:37:41 · 1453 阅读 · 0 评论 -
Opendir readdir
opendir(打开目录) 相关函数 open,readdir,closedir,rewinddir,seekdir,telldir,scandir表头文件 #include#include定义函数 DIR * opendir(const char * name);函数说转载 2016-03-29 16:58:33 · 1135 阅读 · 0 评论 -
strrchr
函数名称: strrchr函数原型:char *strrchr(const char *str, char c);所属库: string.h函数功能:查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回这个位置的地址。如果未能找到指定字符,那么函数将返回NULL。使用这个地址返回从最后一个字符c到str末尾的字符串。转载 2016-03-29 17:13:19 · 244 阅读 · 0 评论 -
linux下错误的捕获:errno和strerror的使用
linux下错误的捕获:errno和strerror的使用 经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量就相当有用了。 在程序代码中包含 #i转载 2016-04-14 19:13:59 · 321 阅读 · 0 评论 -
Grep 提示 Is a directory
默认情况下,’grep’只搜索当前目录。如果 此目录下有许多子目录,’grep’会以如下形式列出:grep: sound: Is a directory这可能会使’grep’ 的输出难于阅读。这里有两种解决的办法:明确要求搜索子目录:grep -r或忽略子目录:grep -d skip如果有很多 输出时,您可以通过管道将其转到’less’上阅读:转载 2016-05-26 10:50:19 · 8113 阅读 · 0 评论 -
D-Bus
D-Bus三层架构D-Bus是一个为应用程序间通信的消息总线系统, 用于进程之间的通信。它是个3层架构的IPC 系统,包括:1、函数库libdbus ,用于两个应用程序互相联系和交互消息。 2、一个基于libdbus构造的消息总线守护进程,可同时与多个应用程序相连,并能把来自一个应用程序的消息路由到0或者多个其他程序。3、基于特定应用程序框架的封装库或捆转载 2016-10-18 20:56:26 · 6654 阅读 · 0 评论