- 博客(26)
- 资源 (6)
- 收藏
- 关注
原创 sqlite3数据库存取和取出图片
近期学习使用sqlite3数据库,有一个将图片读取到数据库中的练习,方式是将图片信息转换成二进制形式进行读取。现将代码帖上,欢迎一起学习!!!-------------------------------------------------将图片信息写入到数据库----------------------------------------#include #in
2017-08-21 13:12:35 6020 1
原创 c++类的简单实现
#include #include using namespace std;class link_list{ private: struct node { int data; node *next; }*head; public: link_list()//构造
2017-08-21 13:11:11 347
原创 c++常用知识点5
1.函数重写overload重载override重写函数重写只发生在父子类之间在派生类中定义与基类函数原型相同(返回类型、函数名、参数列表)的函数2.赋值兼容性原则在基类与公有派生类之间也存在赋值兼容原则is-a 关系
2017-08-21 13:08:54 208 1
原创 c++常用知识点4
组合与继承:组合:has-a关系继承:is-a关系C++类的继承,指用现有类来创建新的类,即新类会获得已有类的属性和行为,并且可以添加新的属性和行为新的类称为子类或派生类,已有类称为父类或基类!格式:class 派生类名: 继承方式 基类名{//派生类新增加的成员};继承的过程:1.接收基类的成
2017-08-21 13:03:17 198
原创 c++常用知识点3
1.初始化列表构造函数(初始参数):要初始化的成员(初始值),...{}建议直接使用初始化列表来初始化所有的成员--------------------------------------------------------------------------------------------------
2017-08-21 13:00:24 215
原创 c++常用知识点2
1.动态内存分配C语言中使用malloc()申请内存空间 ,用free()释放内存空间 C++中使用new申请内存空间 ,用delete释放内存空间1. new 用于分配内存new是根据类型来自动分配空间int *p = new int;delete用于释放内存
2017-08-21 12:50:26 256
原创 c++常用知识点1
1.helloworld程序#include using namespace std;int main(){ cout<<"hello world"<<endl; return 0;}2.命名空间namespace本质:程序员开辟的一块内存空间作用:避免名字冲突使用:定义名字空间
2017-08-21 12:42:55 202
原创 shell脚本实用知识点
----------------------------------------------------------------------------------------------------1.什么是shell?shell本意为壳,用于保护内核shell是用C语言编写的程序shell是普通用户与内核沟通的桥梁,是命令解释器shell
2017-08-11 18:45:49 310
原创 sqlite3数据库函数
数据库操作的基本步骤:0.连接数据库1.打开数据库2.操作数据库3.关闭数据库sqlite3的基本元素:两个对象与八个方法一.封装系列1.建立连接、打开数据库int sqlite3_open( const char *filename, /* 字符串形式的数据库名(UTF-8),存在则打开,不
2017-08-11 18:09:26 2708 1
原创 sqlite3数据库命令
SQL:结构化查询语言 Structrue Query Language是所有关系型数据库管理系统的标准语言 非过程化语言只需要去定义期望结果,将产生结果的过程交给外部代理(数据库引擎)来定义根据SQL语言的功能可以这样分类:数据定义语言:DDL创建表:CREATE TABLE IF NOT EXISTS 表名(
2017-08-06 23:50:50 472
原创 数据库介绍
数据库:基础接口---------------1.数据 data描述事件的符号记录,包括数字、字符串、图像、音频、影像等,它们都可经过数字化存入计算机2.数据库 database存储数据的仓库,有组织、可共享的数据集合,按照数据结构来组织、存储和管理数据3.数据库管理系统 DBMSDBMS应该提供如下功
2017-08-06 23:49:16 310
原创 sqlite3数据库ubuntu移植&arm开发板移植
sqlite3数据库下载地址PC版:1.解压tar xvf sqlite-autoconf-3190300.tar.gzcd sqlite-autoconf-31903002.检查、配置(如果成功,会生成Makefile) --prefix=PREFIX:指定安装目录./configure --prefix=/home/csgec/bui
2017-08-06 23:47:19 819
原创 alsa库的移植
1.下载alsa-1.0.tar.gz 到开发板下载地址2.解压alsa-1.0.tar.gz库tar -xzvf alsa-1.0.tar.gz3.把alsa库中的所有工具下载到/bin目录 cd /alsa-1.0.22/bin cp * /bin -R 4.把alsa库中的所有库下载到/
2017-08-06 23:36:25 606
原创 UDP组播
UDP组播的搭建流程-----------------------------------------------------------------------------------------------------------------------------【murecv.c】#include #include
2017-08-06 23:35:02 423
原创 IO多路复用
读写IO 阻塞I/O: 读::read一个文件,假如文件没有数据则读取会阻塞直到有数据时,返回数据的大小或读错误 写: write一个文件,写一般不会阻塞,但是当要写入的空间写满时,写就会阻塞,等待空间中有地方可写时,才再次写入,或写失败。 非阻塞I/O: O_NONBLOCK
2017-08-06 23:33:00 292
原创 套接字选项&UDP广播
套接字选项(socket options)每个套接字在不同的协议层次(级别)上有不同的行为属性(选项),有两个函数用来设置或获取这些套接字选项getsockoptsetsockoptNAME getsockopt, setsockopt - get and set options on socketsSYNOPSIS #inc
2017-08-06 23:31:16 1074
原创 UDP服务器、客户端的简单实现
TCP协议和UDP协议的区别:TCP:面向连接,传输可靠(保证数据正确性,保证数据顺序),用于传输大量数据(流模式),速度慢,建立连接需要开销较多。UDP:面向非连接,传输不可靠,用于传输少量数据(数据包模式),速度快。UDP协议的搭建流程---------------------------UDP通信接收端-----------
2017-08-06 23:27:15 1233
原创 TCP服务器、客户端的简单实现
1. IP地址(IPV4 IPV6) 以一个32位的整形表示:172.166.111.110 -》点分10进程 地址 255.255.255.255 表示为 FF FF FF FF ->二进程 2.IP地址分类A类地址:0.0.0.0 -- 127.255.255.2
2017-08-06 23:24:13 541
原创 mplayer解码库的移植
---------linux系统的多媒体处理---------音频解码库:madplay 视屏解码:mplayer 音频录制:alsa-----------------------------------开源免费-------------------------------------1.解压源码把所有的源码包复制到/home/ge
2017-08-06 23:20:11 1335
原创 线程的简单介绍与实现
线程和进程 线程:是系统调度的基本单位 进程:是系统分配资源的基本单位为了任务处理linux系统引入了进程的概念去实现多任务处理: 进程的特点:1.进程间的内存空间是互相独立的。 2.进程是系统分配资源的最少单位 -》每创建一个进程系统都会进行一次资源分配
2017-08-05 23:57:01 232
原创 进程间通信——信号
信号 软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而
2017-08-05 23:52:24 300
原创 进程间通信——信号量
信号量信号量的作用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。为什么要使用信号量?因为共享内存是可以由多个进程同时访问,假如有多个进程同时访问同一块地址的话,内存就会出错,或者是运算错误,所以当某个进程访问共享内
2017-08-05 23:37:55 265
原创 进程间通信——共享内存
共享内存共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。原理图如下:为什么要使用共享内存?因为管道通信,每次都要调用系统IO,调用系统IO是很损耗系统资源的,假如有某些数据,进程之间是频繁访问的,我们就可以在系统中申请一片内存让他们共同访
2017-08-05 23:35:44 217
原创 进程间通信——消息队列
什么是消息队列?消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。查看系统中ipc的数量:ipcs -m shared memory segments
2017-08-05 23:32:48 213
原创 进程间通信——管道
为什么要学习进程通信?因为复杂程序都是多任务的,进程间需要相互协作,但进程间的内存空间又是独立的,所以需要掌握进程的通信让他们相互协作。管道的概念:管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数即可创建一个管道。有如下特质:1. 其本质是一个伪文件(实为内核缓冲区)2. 由两个文件描述符引用,一个表示
2017-08-05 23:30:59 253
原创 进程的简单介绍与实现
什么是进程?什么是程序?进程在系统中能够独立运行,并分配资源的基本单位。而程序由多个进程组成,一个程序最少有一个进程。进程是动态的,程序是静态的。进程控制块(PCB)在Linux中task_struct结构体即是PCB。PCB是进程的唯一标识,PCB由链表实现(为了动态插入和删除)。进程创建时,为该进程生成一个PCB;进程终止时,回收PCB。PCB包含信息:
2017-08-05 23:19:38 335
STL数值算法源码
2018-06-14
7大排序算法实现程序(快速排序,冒泡排序,选择排序,归并排序,插入排序,希尔排序,堆排序)
2017-06-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人