简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文对linux下块设备文件全部适用。linux下并没有专门用于获取硬盘设备大小的系统调用。因为完全不需要。linux下可以通过打开设备文件(块设备),执行lseek(fd,0,2)跳转到文件结尾处,通过lseek返回值获取设备文件大小。linux内核启动时会获取硬盘的总大小,保存在内核中,对其读取或写入时都要对总大小做判断,读取位置是否已经超出最大值。而执行lseek(fd,0,2)会将当
不看linux内核实在没有学习linux的必要,最近又开始看《Linux内核完全注释》,现在开始看比以前感觉好多了,一些以前难以明白的问题现在也 不是什么问题。有人说时间可以解决很多问题,以前不懂,现在终于明白了。下面是我参考别人写的文章,自己照着上面在Ubuntu9.04上做了下,一切顺 利。好了,废话少说!****************************************
blockdev命令blockdev命令可以获取linux下块设备的属性值,以及设置一些块设备的属性值。命令参数block -V 输出程序的版本号blockdev --report [devices] 列举出devices设备信息。如果没有devices,则输出所有操作系统发现的块设备。blockdev [-v|-q] commands devices-v 命令设置后,后面的命令行参数执
当需要在大于4G的文件中跳转或在更大的块设备中跳转的时候lseek是无法完成任务的,这需要使用其他的文件跳转系统调用。LINUX中有系统调用llseek,用他可以实现64位的跳转,完全可以支持现在最大的文件或块文件的大小。#include <sys/types.h>#include <unistd.h>int _llseek(unsigned int fd, unsigned long off
Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样。为了管理这些设备,系统为设备编了号,每个设备号又分为主设备号和次设备号。主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。对于常用设备,Linux有约定俗成的编号,如硬盘的主设备号是3。
as86 ld86as86和ld86是linux下的16位汇编编译器,链接器。linux内核中有部分代码需要用到as86以及ld86。而ubuntu下默认并没有安装as86和ld86。需要自行安装。安装sudo apt-get install bin86
熟悉Linux的都知道,Linux下硬盘的命名规则是had、hdb…sda、sdb之类的。但是,如何才能知道机器上到底有多少块硬盘呢?刚开始,我以为/dev目录下会有所体现结果我发现设备文件存在并不代表这个设备。那么怎么办才好呢。后来我发现fdisk可以得到硬盘的数量。于是就阅读了一下fdisk的源代码。果然找到了Linux获取硬盘数量的方法。实例代码如下:#include