- 博客(4)
- 资源 (18)
- 收藏
- 关注
原创 关于gcc的扩展宏定义中, "#" 和 "##"的含义
"#" 代表和一个字符串相连接 "##" 代表和一个符号相连接,符号可以是变量,或另一个宏符号举例如下:#include<stdio.h>#define FILE_NAME "/dev/tty"#define FILE_NAME2 "/dev/console"// '#' use example#define FILE_OPEN1(fd,n) \{ \ fd =...
2018-03-19 22:10:18 1725
原创 一种编译时自动生成时间来实现软件版本管理的方法
多数情况下,我们在进行软件版本的迭代更新时,除了定义软件版本号外,还会定义个编译的时间点。但是如果通过数组定义编译时间,每次编译我们都需要手动修改,非常麻烦,而且有时候,还会忘记。其实我们不需要这么复杂,编译器一般都会提供一个宏用于自动获取编译时间。例进行说明:ANSIC标准定义了以下6种可供C语言使用的预定义宏: __LINE__ ...
2018-03-19 20:56:43 1382 1
转载 块设备剖析之BIO
原文链接:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=30282771&id=5144166本文所有内容均基于内核版本Linux-v3.2.40。 本文主要对BIO结构体作基本说明,并重点分析bi_io_vec向量及其用法。 1. BIO结构体如下所示:struct bio { sector_t...
2018-03-17 22:29:55 884
原创 linux块设备驱动程序示例(适用于高版本内核3.16.0 - 3.19.0等,亲测可用)
1. 字符设备与块设备的 I/O 操作主要有如下不同点: (1)块设备只能以块为单位接受输入和返回输出,而字符设备则以字节为单位。大多数设备是字符设备,因为它们不需要缓冲而且不以固定块大小进行操作。 (2)块设备对于 I/O 请求有对应的缓冲区,因此它们可以选择以什么顺序进行响应,字符设备无须缓冲且被直接读写。对于存储设备而言调整读写的顺序作用巨大,因为在读写连续的扇区比分离的扇区更快...
2018-03-16 07:21:46 1819 1
malloc的实现源码
2017-08-03
可方便移植的printf,升级版.c
2016-05-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人