Linux中的文件I/O缓冲

近日阅读《Linux/UNIX系统编程手册》第13章 - 文件I/O缓冲,有些收获,是以此文以记之。以往只知道Linux的I/O操作有缓冲机制,但始终不知道具体的缓冲流程及使用方法。读完本章节后方才有种恍然大悟的感觉,久违的因读书而觉得舒爽的感觉。

好了,进入正题,下图摘自原文(13.4-I/O缓冲小结),此图概括了stdio库及内核针对输出文件所用的缓冲以及各类缓冲的控制机制。本文依据此图逐步揭开文件I/O缓冲的面纱。

I/O缓冲

阅读更多 >>

Linux指令 - tee的实现

近日学习《Linux/UNIX 系统编程手册》一书,巩固了C语言中一些常用库函数的使用,主要涉及基本IO操作相关的库函数。为了加深理解,手动实现了Linux系统中的tee指令的功能。借此文记述实现过程。

阅读更多 >>

OpenWrt中使用gdb分析coredump

近日调试一个bug,一个守护进程在特定情况下执行一段程序后便会挂掉。为了分析bug产生原因,本人使用了printf, strace追踪,gdb调试等诸多调试工具和测试方法。本文对于在OpenWrt嵌入式系统中启用gdb功能及其使用方法进行详细说明。

阅读更多 >>

网页模板pug基本语法

Pug – robust, elegant, feature rich template engine for Node.js

pug原名jade,因版权问题更名为pug,即哈巴狗。与hexo默认模块ejs一样,pug也是一个模板引擎,可用于快速的网站开发,当然也可以用于静态博客网站的设计。本站点现时所用主题manupassant也使用了pug

阅读更多 >>

Python实现快排及其可视化

最近装了个Anaconda,准备学习一下数据可视化。本着三天打鱼两天装死的心态,重新抱起崭新的算法书,认真学起了快排算法。学完后用Python实现了一遍基本的快排,然后使用matplotlib进行动态绘图,最后使用imageio生成GIF图片。谨以此文以记之!

阅读更多 >>

tmux常用配置说明

tmux作为Linux三大神器之一,结合zshvim堪称无敌,tmux作为分屏利器自有其强大之处,本文就其常用配置予以说明。

安装tmux

# install in ubuntu
$ sudo apt-get install tmux
  • Ctrl+B: default keys of tmux prefix
  • .tmux.conf: config file of tmux
  • tmux source-file .tmux.conf: command to reload .tmux.conf

阅读更多 >>

Openwrt中添加内核模块

如果想要在Openwrt系统中添加一个内核模块,其实并不难,对着某个已有的内核模块,依葫芦画瓢嘛,不难。本文将介绍一个最最简单的

sourcecode

path: git_repo/package/kmod-demo/

阅读更多 >>

Python网络爬虫4 - scrapy入门

scrapy作为一款强大的爬虫框架,当然要好好学习一番,本文便是本人学习和使用scrapy过后的一个总结,内容比较基础,算是入门笔记吧,主要讲述scrapy的基本概念和使用方法。

scrapy framework

首先附上scrapy经典图如下:

阅读更多 >>