- 博客(20)
- 资源 (14)
- 收藏
- 关注
原创 UVa 514 - Rails
主要是栈的灵活使用。#include <stdio.h>#include <stack>int target[1000+10] = {0};int main(){ int n; while(scanf("%d", &n) == 1) { if(n == 0) break; f...
2019-05-22 17:32:56
250
原创 UVa210 - Concurrency Simulator
主要涉及双端队列和单端队列的使用。#include <stdio.h>#include <queue>#include <string>#include <cstring>enum StatementType { ASSIGN = 0, PRINT, LOCK, UNLOCK, END};st...
2019-05-22 14:45:22
256
原创 跳跃表以及在redis中的实现
1 什么是跳跃表以下是摘至维基百科关于跳跃表的描述:跳跃列表是在基础链表的基础上按层建造的。底层是一个普通的有序链表。每个更高层都充当下面列表的“快速跑道”,这里在第i层中的元素按某个固定的概率p出现在第i+1层中。查找一个目标元素,从顶层列表和头元素起步,并沿着每层链表搜索。如果在一层列表中找到的元素等于目标元素,则表明该元素直接被找到。当在一层列表中查找到小于目标的元素时,就切换...
2019-01-04 11:27:15
785
原创 kafka中的配额管理(限速)机制
kafka中的配额管理(限速)机制kafka支持配额管理,从而可以对Producer和Consumer的produce&fetch操作进行流量限制,防止个别业务压爆服务器。本文主要介绍如何使用kafka的配额管理功能。1 Kafka Quatas简介Kafka配额管理所能配置的对象(或者说粒度)有3种:user + clientiduserclientid这3种...
2018-02-27 17:15:33
14653
1
原创 一个kafka创建topic失败的问题
关于kafka创建topic时出现 ERROR kafka.common.KafkaException: Failed to parse the broker info from zookeeper 错误的处理
2017-11-22 14:44:55
16342
原创 从零开始编写一个简单的Linux文件系统
最近想研究一下Linux文件系统,最好的开始当然是自己写一个简单的文件系统,并能够mount上。这方面的工作其实已经有很多人做过了,比如IBM Linux技术中心的教程:Linux FileSystems in 21 Days( A step by step introduction to writing a Linux Filesystem)点此下载源代码samplefs
2015-09-30 16:09:04
9133
原创 Linux内核调试利器——printk
在Linux开发环境下,打印log一直是最有效的调试方式,内核开发也不例外。先看一下下面这段代码:#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");MODULE_AUTHOR("Wang Shuxiao");static int hello_init(void){ printk(
2015-09-29 14:32:24
1941
原创 使用MySQL Connector/C(libmysqlclient) 连接MySQL服务器
本文主要介绍如何使用MySQL Connector/C (libmysqlclient)访问数据库,以及如何执行SQL语句并解析返回结果。
2015-08-20 17:24:02
12660
原创 nginx学习笔记(1) 使用nginx搭建简单的HTTP服务器
nginx作为轻量级的http服务器,能够很好地应付高并发的http请求。同时,它也能被配置为http代理服务器。作为后台开发的菜鸟,这样一份优秀的开源服务器摆在眼前,总要研究一番,学点东西才靠谱啊!当然,学习nginx的第一步就是学会如何使用它了。
2015-08-14 18:19:13
9734
1
转载 shell 字符串处理
在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。
2015-07-14 11:29:06
670
原创 Linux 32bit 程序的函数调用
今天研究了一下Linux 32bit程序的函数调用过程,主要是从汇编指令角度去分析函数调用前后栈帧的变化。
2015-07-09 17:33:32
1051
原创 Linux eventfd的使用
eventfd其实是内核为应用程序提供的信号量。它相比于POSIX信号量的优势是,在内核里以文件形式存在,可用于select/epoll循环中,因此可以实现异步的信号量,避免了消费者在资源不可用时的阻塞。这也是为什么取名叫eventfd的原因:event表示它可用来作事件通知(当然是异步的),fd表示它是一个“文件”。
2015-05-22 11:02:36
5397
原创 tcp连接的建立与终止
理解TCP连接,需要首先记住以下几点:TCP是双向连接。两个方向的连接可以独立关闭。TCP是基于字节流的连接。每个tcp socket在内核里有接收缓冲区和发送缓冲区。应用程序只能操纵缓冲区数据,而不能干扰实际的数据发送过程。应用程协议可能有自己的协议格式,但在TCP看来全是一个一个的字节。下面基于以上3点,谈一下TCP连接的建立、数据传输和终止过程。建立连接正常的连接过程需要3路握手,不再
2015-05-19 15:30:11
941
原创 Linux内核学习(一)8086编程模型
本文主要介绍Intel8086系列的编程模型,包括分段与分页机制、任务切换过程以及中断处理系统。作为Linux内核学习曲线的起点,本文的侧重点在于对于每个主题,硬件上是如何实现的,以及为软件(操作系统)提供了什么样的接口。本文不会介绍x86汇编语言的知识,有关知识请自行参考资料。需要说明的是,Linux内核基于80x86,因此需要遵循8086的编程模型,但在很多地方实现了自己的策略。因此,如果
2015-01-19 20:25:28
2327
原创 驱动学习第2天 之 最简单的字符设备驱动testchr
我不是说scull简单,即使是一个纯软件的scull,对于我这个菜鸟来说还是很有挑战意义的,毕竟基本上所有内核模块的特性它都具备,真正的“麻雀虽小,五脏俱全”啊!第2天,我们要实现一个只能完成基本的读写操作的设备文件/dev/scull,要求是只在单进程访问的情况下能够正常地打开它,并进行读写操作。为了表示咱的设备不同于LDD实现的scull,咱取名叫testchr。 注:本文按照便于
2014-06-03 21:53:01
799
转载 The Best Questions for Would-be C++ Programmers, Part 2
【本文转载自TopCoder,原作者zmij】In the second part of this installment we'll tackle some questions regarding more advanced features of the language (the experienced C++ programmers will consider some of
2013-09-12 15:20:54
829
转载 The Best Questions for Would-be C++ Programmers, Part 1
【本文转载自TopCoder,原作者zmij】It seems that an almost obligatory and very important part of the recruitment process is "the test." "The test" can provide information both for the interviewer and the cand
2013-09-12 15:19:32
683
转载 Ubuntu 下安装Matlab
Ubuntu下安装Matlab 环境 Ubuntu 12.04 LTS 32bit ;Mathworks Matlab 2012a UNIX ISO-TBE 安装过程如下: 1)将matlab安装iso文件拷贝到HOME目录下,即/home/shuxiao2)打开终端,输入命令挂载ISO文件(我这里的文件名为matl12au.iso):sudo mount matl12au
2012-12-12 16:57:40
1565
原创 s3c6410 IROM启动代码分析
S3c6410 IROM启动代码分析: 1) 跳转到steppingstone由于新做的板子要用SD卡启动的方式测试板子硬件功能是否正常,所以我很想知道程序是如何由irom跳转到我写的测试代码的:jump_to_stepingldr0: 0x451c: e51ff004 ldr pc, [pc, #-4] ; 将0x4520内存
2012-05-04 16:57:13
2138
IEEE 802.11 - 2012
2013-01-16
ARM处理器裸机开发程序包
2012-03-16
北邮信号与系统课件3
2010-05-22
北邮信号与系统课件2
2010-05-22
中山大学模拟电子技术基础实验讲义
2009-11-29
《MATLAB程序设计教程》电子教案
2009-11-29
LINGO8_0_for_Windows软件及应用
2009-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人