自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (49)
  • 收藏
  • 关注

转载 通过完整示例来理解如何使用 epoll

网络服务器通常使用一个独立的进程或线程来实现每个连接。由于高性能应用程序需要同时处理大量的客户端,这种方法就不太好用了,因为资源占用和上下文切换时间等因素影响了同时处理大量客户端的能力。另一种方法是在一个线程中使用非阻塞 I/O,以及一些就绪通知方法,即当你可以在一个套接字上读写更多数据的时候告诉你。本文介绍了 Linux 的 epoll(7) 机制,它是 Linux 最好的就绪通知机制。

2016-09-25 11:48:41 1677

转载 面试中的排序算法总结

前言  查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。面试官对于这些排

2016-09-25 11:41:37 251

转载 聊聊IO多路复用之select、poll、epoll详解

IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:当客户处理多个描述符时(一般是交互式输入和网络套接口),必须使用I/O复用。当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。如果一个服务

2016-09-25 11:22:27 458

转载 聊聊 Linux 中的五种 IO 模型

上一篇《聊聊同步、异步、阻塞与非阻塞》已经通俗的讲解了,要理解同步、异步、阻塞与非阻塞重要的两个概念点了,没有看过的,建议先看这篇博文理解这两个概念点。在认知上,建立统一的模型。这样,大家在继续看本篇时,才不会理解有偏差。那么,在正式开始讲Linux IO模型前,比如:同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定

2016-09-25 11:18:30 430

转载 聊聊Socket、TCP/IP、HTTP、FTP及网络编程

1 这些都是什么既然是网络传输,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,另一个是如何进行可靠高效的数据传输。这里就要使用到TCP/IP协议。1.1 TCP/IP协议组TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成。IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机。

2016-09-23 20:51:34 453

转载 聊聊同步、异步、阻塞与非阻塞

近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具体细节,却说的不那么准确,这也是自己在这几个方面也没有细细考究过的原因吧。经过看了些这几个概念的资料,发现同步、异步、阻塞、非阻塞的概念其实也并不难以理解,在此写下此文,欢迎拍砖,希望多多交流。

2016-09-23 12:38:46 273

转载 如何选择开源许可证?

如何为代码选择开源许可证,这是一个问题。世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种:GPL、BSD、MIT、Mozilla、Apache和LGPL,如何在这之中做选择,也很复杂。乌克兰程序员 Paul Bagwell,画了一张分析图,说明应该怎么选择。这是我见过的最简单的讲解,只用两分钟,你就能搞清楚这六种许可证之间的最大区别。

2016-09-22 09:06:46 298

转载 4 张 GIF 图帮助你理解二叉查找树

二叉查找树(Binary Search Tree),也称二叉搜索树,是指一棵空树或者具有下列性质的二叉树:任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;任意节点的左、右子树也分别为二叉查找树;没有键值相等的节点。二叉查找树相比于其他数据结构的优势在于查找、插入的时间复杂度较低。为O(log n)。

2016-09-22 09:00:46 326

转载 Linux Shell 文本处理工具集锦

本文将介绍Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;提供的例子和参数都是最常用和最为实用的;我对shell脚本使用的原则是命令单行书写,尽量不要超过2行;如果有更为复杂的任务需求,还是考虑python吧;find 文件查找查找txt和pdf文件 find

2016-09-22 08:49:34 405

转载 cc2530 用SmartRFProg烧hex时出错处理记录

在生成hex文件时出错错误提示:HEX file content at address 0x4A390 exceeds chip's 256 kB flash size解决办法如下:f8w2530.xcl文件。在 “Projects\zstack\Tools\CC2530DB\”目录下,也可以通过IAR编译环境的左侧Workspace窗口打开找到两行被注

2016-09-21 10:08:24 2553

转载 73条日常Linux shell命令汇总,总有一条你需要!

1.检查远程端口是否对bash开放:echo >/dev/tcp/8.8.8.8/53 && echo "open"2.让进程转入后台:Ctrl + z3、将进程转到前台:fg4.产生随机的十六进制数,其中n是字符数:openssl rand -hex n5.在当前shell里执行一个文件里的命令:source

2016-09-21 09:32:03 600

转载 提高代码质量:如何编写函数

函数是实现程序功能的最基本单位,每一个程序都是由一个个最基本的函数构成的。写好一个函数是提高程序代码质量最关键的一步。本文就函数的编写,从函数命名,代码分布,技巧等方面入手,谈谈如何写好一个可读性高、易维护,易测试的函数。命名首先从命名说起,命名是提高可读性的第一步。如何为变量和函数命名一直是开发者心中的痛点之一,对于母语非英语的我们来说,更是难上加难。下面我来说说如何为函数命名的一些想法

2016-09-21 09:30:18 317

转载 每一个程序员需要了解的10个Linux命令

作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息。本文将为各位开发者分享10个有用的Linux命令,希望对你会有所帮助。以下就是今天我们要介绍的Linux命令:mantouch, cat and lesssort and grepcutsedtarfinddiffuniqchmod接下来让

2016-09-20 17:51:02 410

转载 内存池技术畅想

内容:本文将介绍几种常用的内存池技术的实现,这是我最近学习各大开源的内存池技术遗留下来的笔记,其主要内容包括:STL内存池以及类STL内存池实现Memcached内存池实现固定规格内存池实现 Nginx内存池实现 一.类STL的内存池实现方式SGI STL的内存池分为一级配置器和二级配置器,一级配置器主要处理分配空间大小大于128Byte的需求,其内部实现就是直

2016-09-20 09:50:58 709

转载 如何写出优美的 C 代码

面向对象的 C面向对象的语言更接近人的思维方式,而且在很大程度上降低了代码的复杂性,同时提高了代码的可读性和可维护性,传统的 C 代码同样可以设计出比较易读,易维护,复杂度较低的优美代码,本文将通过一个实际的例子来说明这一点。基础知识结构体除了提供基本数据类型外,C 语言还提供给用户自己定制数据类型的能力,那就是结构体,在 C 语言中,你可以用结构体来表示任何实体。结构体正是面

2016-09-20 09:30:26 446

转载 DHCP的基本实现原

DHCP几个概念:DHCP Client:DHCP客户端,通过DHCP协议请求IP地址的客户端。DHCP客户端是接口级的概念,如果一个主机有多个以太接口,则该主机上的每个接口都可以配置成一个DHCP 客户端。交换机上每个Vlan接口也可以配置成一个DHCP客户端。DHCP Server:DHCP 服务端,负责为DHCP客户端提供IP地址,并且负责管理分配的IP地址。DHCP Relay

2016-09-19 11:18:47 1451

转载 字符编码

你是否认为“ASCII码 = 一个字符就是8比特”?你是否认为一个字节就是一个字符,一个字符就是8比特?你是否还认为你是否还认为UTF-8就是用8比特表示一个字符?如果真的是这样认为认真读完这篇文章吧!为什么要有编码?首先大家需要明确的是在计算机里所有的数据都是字节的形式存储,处理的。我们需要这些字节来表示计算机里的信息。但是这些字节本身又是没有任何意义的,所以我们需要对这些字节赋予实

2016-09-19 10:49:43 294

转载 编程思想之多线程与多进程(2)——线程优先级与线程安全

原文:http://blog.csdn.net/luoweifu/article/details/46701167 作者:luoweifu 转载请标名出处《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。本文将接着讲一下线程优先级和线程安全。线程优先级现在主流

2016-09-19 10:18:23 406

转载 编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程

原文:http://blog.csdn.net/luoweifu/article/details/46595285 作者:luoweifu 转载请标名出处什么是线程什么是线程?线程与进程与有什么关系?这是一个非常抽象的问题,也是一个特别广的话题,涉及到非常多的知识。我不能确保能把它讲的话,也不能确保讲的内容全部都正确。即使这样,我也希望尽可能地把他讲通俗一点,讲的明白一点,因为

2016-09-19 10:09:05 289

转载 HTTP长连接和短连接

1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。2. 如何理解HTTP协议是无状态的

2016-09-18 10:34:49 317

转载 偏执却管用的10条Java编程技巧

经过一段时间的编码(咦,我已经经历了将近20年的编程生涯,快乐的日子总是过得很快),我们开始感谢那些好习惯。因为,你知道…“任何可能出错的事情,最后都会出错。”这就是人们为什么喜欢进行“防错性程序设计”的原因。偏执的习惯有时很有意义,有时则不够清晰也不够聪明,也许当你想到这样写的人的时候还会觉得有点怪异。下面是我列出的的个人感觉最有用而又偏执的 10 项 Java 编程技巧。请看:

2016-09-18 09:20:46 297

转载 HTTP 协议入门

HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点。本文介绍 HTTP 协议的历史演变和设计思路。一、HTTP/0.9HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。最早版本是1991年发布的0.9版。该版本极其简单,只有一个命

2016-09-17 18:59:41 223

转载 Linux VFS 文件系统结构分析

VFS是Linux非常核心的一个概念,linux下的大部分操作都要用到VFS的相关功能。这里从使用者的角度,对VFS进行了简单说明。使用者不但需要知道Linux下有哪些文件操作的函数,还需要对VFS的结构有一个比较清晰的了解,才能更好的使用它。例如hard link 与symbolic,如果没有VFS结构的相了解,就无法搞清楚如何使用它们。本文首先是建立了一个简单的目录模型,然后介绍该目录在V

2016-09-17 10:45:02 2451

转载 Linux 下 CPU 使用率与机器负载的关系与区别

当我们使用top命令查看系统的资源使用情况时会看到 load average,如下图所示。它表示系统在1、5、15分钟的平均工作负载。那么什么是负载(load)呢?它和CPU的利用率又有什么关系呢?load average:系统平均负载是CPU的Load,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的

2016-09-17 10:27:09 7776

转载 linux中断处理原理分析

Tasklet作为一种新机制,显然可以承担更多的优点。正好这时候SMP越来越火了,因此又在tasklet中加入了SMP机制,保证同种中断只能在一个cpu上执行。在软中断时代,显然没有这种考虑。因此同一种中断可以在两个cpu上同时执行,很可能造成冲突。Linux中断下半部处理有三种方式:软中断、tasklet、工作队列。曾经有人问我为什么要分这几种,该怎么用。当时用书上的东西蒙混了过去,但是

2016-09-17 10:04:12 411

原创 linux中spi驱动框架

linux下的SPI总线驱动在driver/spi目录中。SPI驱动分为三层SPI核心层  drivers/spi/spi.c 与平台无关SPI控制器驱动层SPI设备驱动层每层的主要结构体和函数SPI控制器驱动层(include/linux/spi/spi.h)struct spi_master { struct device dev; s16 bus_

2016-09-14 15:57:06 1132

转载 C语言字符串操作总结大全(超详细)

1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长

2016-09-13 15:40:50 442

转载 玩转Bash变量

PS : 注意本文讨论的是Bash,而不一定是/bin/sh所链接的那个shell。这里出现的所有代码片段,默认在顶上都添加了#!/bin/bash。一门自带混淆的语言while (( $# )); do case $1 in -a*) # Error checking [[ ${1#-a} ]] || { echo

2016-09-11 15:17:35 1997 1

原创 Linux中I2C子系统框架

在linux中的i2c分层结构,也是代码的分层结构。这张图片是从程序调用角度的i2c结构图,其中左侧的/sys和/dev也就是用户访问设备的方式。代码调用层次图   有时候代码比任何文字描述都来得直接,但是过多的代码展示反而让人觉得枯燥。这个时候,需要一幅图来梳理一下上面的内容上面这些代码的展示是告诉我们:linux内核和芯片提供商为

2016-09-10 21:27:51 1791

NppAStyle_bin.zip

下载后打开这个压缩文件,有两个文件夹ansi和unicode(ansi是标准编码,支持语言少;unicode是通用编码,支持更多的语言)。打开unicode文件夹,将NppAStyle.dll放置到Notepad安装目录下的plugins文件夹下。 重启Notepad。 配置NppAStyle,点击菜单栏中的"插件"--->"NppAStyle"--->"options",在代码风格中选择java。

2016-08-15

openssl-0.9.8e.tar.gz

openssl-0.9.8e.tar.gz 官方源码,未做任何改动。

2016-08-07

wpa_supplicant-0.7.3.tar.gz

wpa_supplicant-0.7.3.tar.gz官方源码文件,未做任何改动。

2016-08-07

rt2870.bin

rt2870.bin,linux内核在使用RT5370无线网卡时需要的固件文件。

2016-08-07

MT7601U驱动源码

MT7601U驱动源码,可在ubuntu,可移植到嵌入式,在我的博客中有详细过程。

2016-07-25

QTmaketarget

提取编译好的QT文件脚本。

2016-07-22

MinGW 4.4,qt使用

MINGW4.4,qt在windows下使用的mingw文件。

2016-07-22

qt4.8.5编译文件

qt4.8.5编译好的文件,使用的是ok6410官方提供的3.0.1内核, arm-linux-gcc-4.3.2.tgz编译。

2016-07-22

tslib交叉编译好的文件

tslib交叉编译好的文件,是ok6410官方3.0.1内核, arm-linux-gcc-4.3.2.tgz编译好的文件。

2016-07-22

RT5370驱动源码

RT5370的驱动源码,可以在linux下进行移植编译,已经验证成功,可以在我的博客了解移植过程。

2016-07-20

sqlite-autoconf-3130000.tar.gz

sqlite-autoconf-3130000.tar.gz

2016-05-22

glib-2.22.5.tar.gz

glib-2.22.5.tar.gz库代码

2016-05-22

libffi-3.2.1.tar.gz

libffi库源代码

2016-05-22

fs4412_led_kernel.zip

FS4412开发板led驱动程序,在fs4412内核移植实验中的配套程序。

2016-05-21

FS4412系统移植实验手册-内核移植.pdf

FS4412系统移植实验手册-内核移植

2016-05-21

FS4412系统移植uboot移植实验代码

FS4412系统移植uboot移植实验代码,包括uboot2013源码,三星加密文件,移植需要修改的代码,移植好的能用的代码

2016-05-21

FS4412系统移植实验手册-uboot移植

FS4412系统移植实验手册-uboot移植

2016-05-21

FS4412内核镜像文件3.14

FS4412 linux内核镜像文件3.14

2016-05-18

FS4412 sd卡启动u-boot文件

FS4412 sd卡启动u-boot文件

2016-05-18

FS4412 nfs镜像文件

FS4412 nfs镜像文件

2016-05-18

MyApplicationC1.zip

在android app中调用自己的c代码,这个c代码会以动态库的形式存在,并且为了表示更广泛的使用场景,我们的c程序会使用第三方库(openssl),这也是我们开发中经常用的方式。

2020-04-02

mylib-sample.zip

可以使用ndk进行编译的例子工程。程序中使用了openssl的函数,这样就形成了一个库引用库的过程,这个通了就基本都通了。

2020-04-01

从1开始写一个操作系统.pdf

使用一个STC15W56S4的板子,而且STC还提供了外设的库,我们可以直接拿来作为bsp使用。我使用的是keil5。一个支持时间片和优先级的抢占式实时系统。支持动态内存。这个系统支持任务间通讯,至少要支持信号量,最好能够支持消息队列和共享内存,并且最好能提供一种广播方式。提供一个友好的shell工具。

2019-09-26

RT-OSforSTC15W.zip

从1开始写一个操作系统 教程源码,使用一个STC15W56S4的板子,而且STC还提供了外设的库,我们可以直接拿来作为bsp使用。我使用的是keil5。一个支持时间片和优先级的抢占式实时系统。支持动态内存。这个系统支持任务间通讯,至少要支持信号量,最好能够支持消息队列和共享内存,并且最好能提供一种广播方式。提供一个友好的shell工具。

2019-09-22

CMake官网教程中的工程

CMake入门笔记--CMake官网教程中的工程,可以在有cmake的环境下直接进行编译,运行。注释详细,方便学习。

2019-08-20

dueros.zip

在与小度智能音箱对接时需要使用的php代码,这套代码是完全可以运行的,稍加改动就可以使用,但是距离实际应用还差很多,这个代码只是初期学习阶段使用。

2019-07-23

天猫精灵对接php源码

在与天猫精灵对接时需要使用的php代码,这套代码是完全可以运行的,稍加改动就可以使用,但是距离实际应用还差很多,这个代码只是初期学习阶段使用。

2019-01-27

博客使用代码

博客中提到的代码例子,上传原始文件,方便学习使用。

2018-11-18

nanomsg-1.1.4.tar.gz

nanomsg是一个套接字库,提供了几种常见的通信模式。 它旨在使网络层快速,可扩展且易于使用。 在C中实现,它适用于各种操作系统,没有进一步的依赖性。

2018-09-22

libcyaml-master.zip

用于读写YAML的C库。它使用ISO C11编写,并根据ISC许可进行许可。

2018-09-22

线程消息队列

所谓线程消息队列,就是一个普通的循环队列加上“多生产者-单(多)消费者的存/取操作”。流水线方式中的线程是单消费者,线程池方式中的线程是多消费者。

2018-09-16

inirw源码文件

主要特点: 1、支持;和#注释符号,支持行尾注释。 2、支持带引号'或"成对匹配的字符串,提取时自动去引号。引号中可带其它引号或;#注释符。 3、支持无section或空section(名称为空)。......

2018-09-16

nxjson源码文件

用C编写的非常小的JSON解析器,从以null结尾的字符串解析JSON,易于使用的树遍历API。

2018-09-16

libxml2源码文件

Libxml2是为Gnome项目开发的XML C解析器和工具包(但可以在Gnome平台之外使用),它是MIT License下的免费软件。

2018-09-16

rtlist源码

从linux内核中提取出来的链表实现,在我的博客中有说明,其中有例子程序。

2018-08-31

香橙派烧写系统工具

香橙派烧写系统工具,烧写ubuntu以及armbian等系统所使用的U盘格式化以及镜像工具。

2018-06-25

shell扫雷脚本

shell写的扫雷游戏脚本,ujhk分别是上下左右,a是确认,在ubuntu12测试通过

2017-04-03

shell俄罗斯方块脚本

用shell写的俄罗斯方块脚本,ubuntu12测试通过

2017-04-03

shell猜数字脚本

用shell写的猜数字脚本,在ubuntu12下运行通过

2017-04-03

makefiledemo

makefile递归例程,我的csdn博客有详细说明和使用方法。

2016-11-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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