时习之

学而时习之,不亦说乎


  • 首页

  • 标签

  • 归档

  • 搜索

解决 jekyll 中文换行变成空格的问题

发表于 2015-04-25 | 阅读次数:

2015-4-27 更新

查看 Liquid 文档发现它有一个默认过滤器 join,这和本文编写的过滤器插件名字有冲突 所以把插件中的 join 更名为 join_chinese。误导之处,海涵。

问题

使用 github pages 搭建一个免费的个人博客是一项非常流行的技术,它有着安全, 免费,无流量限制等特点。

github pages 中的文章一般是使用 Markdown 编写的,github pages 会使用 jekyll 把 Markdown 编写的文章转换成 html 文档从而形成一个静态的博客网站。

在我正儿八经的用 markdown 写完一篇文章之前一切都很完美,但是当我开始打开 浏览器查看自己写的文章的时候,却发现了一个非常蛋疼的问题——文章的段落中间总是会 不时出现多余的空格,如下图:

阅读全文 »

关于 C++ 参数使用指针还是引用的总结

发表于 2015-03-28 | 阅读次数:

问题

在 C 语言中,所有的参数传递都是值传递,所以如果你需要在一个函数中改变函数外变量 值,你需要把函数的参数声明为指针(全局变量另当别论)。但是在 C++ 中存在传递引用, 它也可以用来改变变量值。此外引用也同时消除了拷贝对象带来的开销。

既然传递指针和引用都能到达到同样的效果,那么函数声明的时候应该使用引用呢还是 指针呢?

阅读全文 »

一个简单 C 程序的汇编代码分析

发表于 2015-03-26 | 阅读次数:

概述

一个 C 程序它会编译时候产生什么样的汇编代码?这些汇编代码如何执行?函数的栈是如 何工作的?这里通过一个简单的 C 程序生成的汇编程序来分析上面的这些问题。

阅读全文 »

关于 scanf() 函数格式字符串中的空白字符

发表于 2015-03-24 | 阅读次数:

问题

最近重读 《The C Programing Language》 一书,7.4 节讲解格式化输入scanf,书中 关于 scanf() 函数的第一个参数——格式字符串的组成部分描述时有下面这样一句话。

Blanks or tabs, which are ignored.

然而使用 man 3 scanf 查看关于 scanf() 函数的文档时,同样关于格式字符串的 组成部分描述有下面这段话:

A sequence of white-space characters (space, tab, newline, etc.; see isspace(3)). This directive matches any amount of white space, including none, in the input.

K&R 中说空白是被忽略的成分,而文档中给出的说法是空白会匹配输入流中任意空白字符 (包括 0 )。那么到底那一种说法比较妥当呢?

阅读全文 »

LFS 中编译 Fcitx

发表于 2015-03-07 | 阅读次数:

LFS 教会我从无到有构建一个 Linux 系统,也让我对 Linux 系统的内部工作原理 有了更加深刻的理解。但是 LFS 和 BLFS 终究还是外国人写的,所以在中文支持方面 并不是特别让人满意。要想自己编译一个可以供日常使用的 Linux 系统对于我来说最大 的障碍在于 BLFS 中没有关于如何编译输入法的内容,而且网上能够找到的关于如何编译 输入法的资料几乎为零。

阅读全文 »

LKD 总结 —— 第三章

发表于 2015-02-26 | 阅读次数:

概述

这一章主要介绍的是进程的生命周期,包括进程如何表示,如何创建,如何销毁等等。第一 遍看这些内容的时候觉得有很多的地方都不太理解,重温一遍结合源代码理解之后有了更多 的领悟。文中引用的所有的源代码都是 linux-2.6.32.65 内核版本。

阅读全文 »

【转载】 Markdown 语法说明(简体中文版)

发表于 2015-02-20 | 阅读次数:

这份文档来自网络,这里只是个人一个简单的备份,原文可以在 这个地址 找到。

阅读全文 »

Netlink 库 -- 官方开发者教程中文版目录

发表于 2015-02-18 | 阅读次数:

这是libnl库的官方开发者文档教程的中文翻译,原文可以在这个地址中 找到。该文档由郭荣飞翻译,希望可以给开源世界贡献一份自己微薄的力量。本人非专业翻 译因此文中必然有翻译不当之处,如果您发现了这样的问题,请联系 guorongfei@126.com。


目录

  1. 引言

    1.1. 如何阅读这份文档

    1.2. 如何链接到这个库

    1.3. 调试

  2. Netlink 协议基础

    2.1. 寻址

    2.2. 消息格式

    2.3. 消息类型

    2.4. 序列号

    2.5. 多播组

  3. Netlink 套接字

    3.1. 套接字结构体

    3.2. 序列号

    3.3. 多播组订阅

    3.4. 修改套接字回调配置

    3.5. 套接字属性

  4. 消息或数据的发送和接收

    4.1. 发送消息

    4.2. 接收消息

    4.3. Auto-ACK 模式

  5. 消息的解析和构造

    5.1. 消息格式

    5.2. 解析消息

    5.3. 构建消息

  6. 属性

    6.1. 属性格式

    6.2. 属性解析

    6.3. 属性的构造

    6.4. 属性数据类型

    6.5. 示例程序

  7. 回调配置

    7.1. 回调函数挂钩点

    7.2. 内部函数的覆盖

  8. 高速缓存系统

    8.1. 高速缓存的分配

    8.2. 高数缓存管理器

  9. 抽象数据类型

    9.1. 抽象地址

    9.2. 抽象数据

Netlink 库 -- 官方开发者教程中文版第九部分

发表于 2015-02-17 | 阅读次数:

9. 抽象数据类型

libnl 的核心库中实现了一些大多数 neltink 协议都会用到的高层的抽象数据类型。 如果需要的话,未来可能还会实现更多。

阅读全文 »

Netlink 库 -- 官方开发者教程中文版第八部分

发表于 2015-02-16 | 阅读次数:

8. 高速缓存系统

8.1. 高速缓存的分配

基本上所有的子系统都提供了一个函数用来分配一个某种形式的高速缓存。这个函数通常 是像这个样子的:

struct nl_cache *<object name>_alloc_cache(struct nl_sock *sk);

这个函数为自己的对象类型分配一个新的高速缓存、适当的初始化它,然后对它进行更新 以便同步主存储区的当前状态。比如,一个链路高速缓存将会包含目前内核中已经配置的 所有的链路。

有些分配函数还会接收额外的参数以确定高速缓存中应该包含什么数据。

所有的这些函数都会返回一个新分配的高速缓存,或者是在出错的时候返回一个 NULL。

阅读全文 »
1…891011
郭荣飞

郭荣飞

记录成长路上的点点滴滴

108 日志
33 标签
© 2018 郭荣飞
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4