自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 新人作业之基于TCP连接,用消息队列实现图片发送功能,

具体要求是: 1、客户端接受图片,服务器发送图片,建立TCP 连接 2、每次有客户端过来,服务器创建一个线程单独实现图片发送功能 3、最多5个客户端同时连接服务器,超过5个就会失败 4、服务器本地存储一张图片,在服务器处输入“start”之后,服务器就开始向在线的客户端发送图片 5、客户端收到图片...

2019-07-26 19:46:18

阅读数 78

评论数 0

原创 消息队列 传动图片

server.c `#include <stdio.h> #include <stdlib.h> #include <string.h> #include <mqueue.h> #include <sys/types.h> #includ...

2019-07-26 08:15:38

阅读数 94

评论数 0

原创 设备驱动学习(一):hello 简单内核模块的编写

1、hello 简单内核模块的编写 最近在看《linux设备驱动程序》这本书,刚看完第二章。。。。。 先介绍下环境:本地有一个ubuntu的远程服务器,版本是 ~/Documents$ uname -r 3.13.0-32-generic 本来在kernel.org下载了linux4.9...

2019-02-20 14:37:23

阅读数 165

评论数 0

原创 mini2440A 裸机编程:串口控制LED灯的亮灭

要求在PC上发送L11控制开发板led1亮,发送L10控制开发板led1灭;在PC上发送L21控制开发板led2亮,发送L20控制开发板led2灭;在PC上发送L31控制开发板led3亮,发送L30控制开发板led3灭;在PC上发送L41控制开发板led4亮,发送L40控制开发板led4灭;PC使...

2018-04-23 14:00:37

阅读数 414

评论数 0

原创 向RK3399中安装UVC驱动,并进行测试

上次安装了USB转串口的驱动,这次来详细的记录下UVC的驱动加载,步骤和USB转串口的步骤差不多。 环境: 1、PC端:ubuntu 16.04-3 LTS 2、开发板:RK3399,跑的是官方SDK里的镜像 一、安装UVC驱动 1、在内核源码目录下,make menuconfig 在弹出来的...

2017-11-28 13:22:28

阅读数 2294

评论数 4

原创 基于RK3399的USB转串口驱动模块的编译

首先参考了Firefly论坛上帖子:http://developer.t-firefly.com/thread-1546-1-1.html 开发板里烧写的固件的版本是官方的:Firefly-rk3399_xubuntu1604_20171102.img 进入kernel目录下, ma...

2017-11-27 14:25:15

阅读数 2204

评论数 3

原创 ubuntu系统用scp向RK3399发送文件

公司让我把RK3399开发板拿回家摸索摸索,故将遇到的各种问题记录下来: 首先根据wiki上的教程将官方的镜像文件系统下载进板子,这个地方可以参考:点击打开链接 然后我在上面配置了ssh,远程登录来对开发板进行一些相应的工作,这个可以参考 https://jingyan.baidu....

2017-11-25 14:40:29

阅读数 615

评论数 0

原创 从1到n整数中1出现的次数

一开始最容易想到的就是用for循环,每一位每一位的找是否等于1 int NumberOf1Between1AndN_Solution(int n) { int count=0; if(n<1) return 0; for(int i=1...

2017-09-07 17:31:18

阅读数 265

评论数 0

原创 自己实现memcpy函数

#include<stdio.h>void* Mymemcpy(void *dest,const void* src,size_t count) { char *tmpDest = (char *)dest; char *tmpSrc = (char *)src; ...

2017-09-04 19:40:41

阅读数 483

评论数 1

原创 以AT24C02为例的IIC通信协议

IIC通信协议: 双向二线制同步串行总线,只需要两根线即可在总线上器件之间传送信息,两根线分别是SDA和SCL SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系。 SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(...

2017-08-27 17:01:56

阅读数 1154

评论数 0

转载 LCD1602显示屏的驱动设置及例程

一般来说,LCD1602有16条引脚,据说还有14条引脚的,与16脚的相比缺少了背光电源A(15脚)和地线K(16脚)。我手里这块LCD1602的型号是HJ1602A,是绘晶科技公司的产品,它有16条引脚。如图1所示: 图1 再来一张它的背面的,如图2所示: 图2 它的16...

2017-08-25 15:29:49

阅读数 55722

评论数 5

原创 约瑟夫环(数组和链表实现方式)

很经典的编程问题! 约瑟夫环问题的原来描述为,设有编号为1,2,……,n的n(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,再从他的下一个人起重新报数,报到m时停止报数,报m的出圈,……,如此下去,问最后一个人的序号根据数据的存储方式分,我这边提供两种解题方法...

2017-08-14 15:03:00

阅读数 344

评论数 1

原创 把文件中的一组整数排序后输出到另一个文件中(c/c++)

我是自己先建立一个文本文件a.txt,里面写了整数: 1 23 45 67 89 0C语言实现:#include<stdio.h> #include<errno.h> #include<stdlib.h>void sort(int *a,int len) { ...

2017-08-14 12:45:46

阅读数 833

评论数 0

原创 sqlite_exec回调函数的使用

在学习sqlite3小型数据库的时候,发现了sqlite3_exec的函数,可以调用回调函数 具体的原型如下: 原型:int sqlite3_exec(sqlite3* pDB, const char *sql, sqlite_callback callback, void*para, char*...

2017-08-12 16:04:07

阅读数 17829

评论数 1

转载 ARM-LINUX内核管理——内存页表

Linux kernel集中了世界顶尖程序员们的编程智慧,犹记操作系统课上老师讲操作系统的四大功能:进程调度 内存管理 设备驱动 网络。从事嵌入式软件开发工作,对设备驱动和网络接触的比较多。而进程调度和内存管理接触少之有少,更多的是敬而远之。  我的理解,想在内核开发上有更深层次的技术进步,...

2017-08-10 15:40:02

阅读数 602

评论数 0

转载 自己实现printf()函数

大概去年夏天的时候,在《C和指针》里面一个练习题要求实现一个很简单的不包含打印浮点数功能的printf函数。但是很好奇,于是一直纠结下去,结果就是知道了printf的实现,自己也写了一个简单的。或许是夏天的原因吧,那时候暑假没回去,凌晨四点兴奋到不能睡觉。那时候刚开始写blog。没想整理一下,只是...

2017-08-10 11:12:18

阅读数 221

评论数 0

原创 生产者和消费者(PV操作、共享内存)

生产者一直在往共享内存中写数据#include<sys/sem.h> #include<sys/shm.h> #include<stdio.h> #include<stdlib.h> #include<errno.h> #include&...

2017-08-09 17:12:31

阅读数 1552

评论数 0

原创 Linux文件操作命令

基本命令: 1、切换命令:su 普通用户名   、su  /root,切换成超级用户 2、添加用户:addusr 用户名 3、修改密码:passwd 用户名 4、清屏:clear 5、查看当前目录下的文件 ls 6、显示当前目录下的详细信息:ls -l 7、查看所有文件,包括隐藏文件:ls -a...

2017-08-02 17:38:22

阅读数 143

评论数 0

转载 分页存储管理方式——初解

一、连续分配方式缺点 连续分配方式的主要缺点是会形成许多碎片,尽管我们可以通过紧凑的方法将碎片拼接成可用的大块空间,但这样须付出很大的代价。 二、离散分配方式 离散分配方式思想:将进程直接分散地装入到许多不相邻接的分区中。 1.如果离散分配的基本单位是页----------》分页存储...

2017-08-02 14:23:34

阅读数 921

评论数 0

转载 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除

有双向循环链表结点定义为: struct node { int data; struct node *front,*next; }; 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除 BOOL DeteleNode(Nod...

2017-08-02 12:46:35

阅读数 336

评论数 0

转载 用c++设计一个不能被继承的类

分析:这是Adobe 公司2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。 在Java 中定义了关键字final ,被final 修饰的类不能被继承。但在C++ 中没有final 这个关键字,要实现这个要求还是需要花费一些精力。 ...

2017-08-02 12:16:42

阅读数 1517

评论数 0

原创 以下程序输出结果是____。

以下程序输出结果是__。class A { public: virtual void func(int val = 1) { std::cout<<"A->"<<val <<std::endl;} virtual...

2017-08-01 16:27:24

阅读数 1013

评论数 0

原创 平衡二叉树

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h>#define LH 1 //left high #define EH 0 //equal ...

2017-07-27 19:32:49

阅读数 191

评论数 0

原创 二叉排序树

二叉排序树或者是空树,或者是具有系列性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值均小于他的根结点的值 若它的右子树不空,则右子树所有结点的值均大 于它的根节点 它的左右子数也分别为二叉排序树 目的:提高查找和插入删除关键字的速度#include <stdio.h...

2017-07-27 11:18:16

阅读数 110

评论数 0

转载 只有五行的Floyd最短路径算法

我们来想一想,根据我们以往的经验,如果要让任意两点(例如从顶点a点到顶点b)之间的路程变短,只能引入第三个点(顶点k),并通过这个顶点k中转即a->k->b,才可能缩短原来从顶点a点到顶点b的路程。那么这个中转的顶点k是1~n中的哪个点呢?甚至有时候不只通过一个点,而是经过两个点或者更...

2017-07-26 10:24:02

阅读数 253

评论数 0

转载 Dijkstra算法(单源最短路径)

Dijkstra算法(单源最短路径)                                                        Dijkstra算法(单源最短路径)       单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算...

2017-07-26 10:06:15

阅读数 342

评论数 0

原创 最小生成树——普利姆算法(prim)

这是摘抄自《大话数据结构》中的一句话,其实我是没看懂,但是看了代码,加上百度了之后,普利姆算法的步骤: 1、先假设之后一个节点,并同时把这些顶点的权值放在一个数组里,还有创建一个数组保存最小权值顶点的下标,找到这个节点边上的最小权值,这边的另一个节点为K 2、从节点K开始,再次寻找,把与k有关...

2017-07-25 13:09:24

阅读数 855

评论数 0

原创 下面有关继承、多态、组合的描述,说法错误的是?

下面有关继承、多态、组合的描述,说法错误的是?A、封装,把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏 B、继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展 C、隐藏是指派生类中的函数把基类中相同名字的函数...

2017-07-25 10:10:58

阅读数 926

评论数 0

原创 广度(宽度)优先搜索:队列

上一章详细的写出了深度优先遍历的四种情况的程序: http://blog.csdn.net/zscfa/article/details/75947816这一次来详细说说广度优先遍历: 广度优先搜索类似于二叉树的层序遍历,它的基本思想就是:首先访问起始顶点v,接着由v出发,依次访问v的各个未访问...

2017-07-25 00:37:56

阅读数 481

评论数 0

原创 图的深度优先遍历(递归、非递归;邻接表,邻接矩阵)

众所周知,图有经典的两种遍历方式:深度优先遍历和广度优先遍历 首先我们就来说说深度优先遍历,其他的不说了,直接上代码,分为递归个非递归的方式啊首先是递归的方式实现的,比较简单,考虑到存储结构由邻接矩阵和邻接表,有分为两种:一种是邻接矩阵存储的递归,简单点说就是用数组来存储;另一种是邻接表存储的,...

2017-07-23 19:59:55

阅读数 8789

评论数 3

原创 下列有关静态成员函数的描述中,正确的是:

下列有关静态成员函数的描述中,正确的是: A、静态数据成员可以在类体内初始化 B、静态数据成员不可以被类对象调用 C、静态数据成员不受private控制符作用 D、静态数据成员可以直接用类名调用答案:DA,静态成员属于类,而不是属于某个特定的对象,它是由该类的所有对象共享的,因此不能在类的...

2017-07-21 21:57:17

阅读数 2807

评论数 0

原创 请问对一个排好序的数组进行查找,时间复杂度为()

请问对一个排好序的数组进行查找,时间复杂度为() A、O(n) B、O(lgn) C、O(nlgn) D、O(1)

2017-07-21 21:50:14

阅读数 612

评论数 0

转载 常用排序算法总结

目录冒泡排序   鸡尾酒排序   选择排序 插入排序 二分插入排序   希尔排序   归并排序 堆排序 快速排序  我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。  排序算法大体可分为两种:    一种是比较排序,时间复杂度O(nlogn) ~ O(n^...

2017-07-20 17:10:58

阅读数 251

评论数 0

原创 用两个栈来实现一个队列,完成队列的Push和Pop操作。

题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution { public: void push(int node) { stack1.push(node); } int pop(...

2017-07-20 16:17:14

阅读数 208

评论数 0

转载 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。

编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。 #include<stdio.h> #include<errno.h> #inclu...

2017-07-20 11:25:15

阅读数 357

评论数 0

原创 下面哪些调用转换支持可变长度参数

下面哪些调用转换支持可变长度参数 A、cdecl B、stdcall C、pascal D、fastcal答案:A__cdecl __fastcall与__stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调...

2017-07-20 09:30:58

阅读数 396

评论数 0

原创 设计模式——单例模式

单例模式:一个类只生成一个实例对象。要从生成唯一一个实例,构造函数就要设为私有,一般有两种模式:一位饿汉式,只有在空的时候分配内存class Singleton { private: Singleton() {} static Singleton* instance; pu...

2017-07-19 10:59:26

阅读数 132

评论数 0

原创 重载赋值运算符(c++)

String& String::operator=(const String &str) { if(this == &str)//判断是否为本身,是的话就返回 { return *this } delete []str_; ...

2017-07-19 10:21:09

阅读数 193

评论数 0

原创 基于栈的非递归方法实现二叉树

#include<iostream> #include<vector> #include<stdlib.h>using namespace std;struct BiNode { char data; struct BiNode *left; ...

2017-07-18 23:46:34

阅读数 203

评论数 1

原创 用链表实现二叉树的实现(递归)

/*链表的递归方法实现二叉树*/ #include<stdio.h> #include<stdlib.h> #include<string.h> struct BiNode { char data; struct BiNode *lchild; ...

2017-07-18 18:45:57

阅读数 315

评论数 0

提示
确定要删除当前文章?
取消 删除