日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

直接读取硬盘扇区

發(fā)布時(shí)間:2024/7/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 直接读取硬盘扇区 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


Linux系統(tǒng)下一切都是文件,可以像使用普通文件一樣使用設(shè)備,可直接操作設(shè)備扇區(qū)內(nèi)容,這種方式不經(jīng)過文件系統(tǒng)。

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <libgen.h>
#include <unistd.h>

static void usage(char *prog_name)
{
????fprintf(stderr, "usage: %s device start count\n", prog_name);
????fprintf(stderr, "example: %s /dev/sda 0 512\n", prog_name);
}

int main(int argc, char *argv[])
{
????char buf[4096];
????int fd = 0;
????int i = 0;
????int j = 0;
????int start = 0;
????int count = 0;
????char *device = NULL;

????if(argc != 4){
????????usage(basename(argv[0]));
????????exit(1);
????}
????
????device = argv[1];
????start = atol(argv[2]);
????count = atol(argv[3]);

????fd = open(device, O_RDONLY);
????if(-1 == fd){
????????fprintf(stderr, "cannot open /dev/hda");
????????exit(1);
????}????
????
????if(lseek(fd, start, SEEK_SET) != start){
????????fprintf(stderr, "cannot seek at %d", start);
????????exit(1);
????}
????
????while(count > 0){
????????int size = count > sizeof(buf) ? sizeof(buf) : count;

????????read(fd, buf, size);
????????
????????/* 每行顯示16個(gè)字節(jié) 每兩個(gè)字節(jié)間以空格分開 */
????????for(i = 0; i < size/16; i++){
????????????fprintf(stdout,"%08x:", i*16+start);
????????????for(j = 0; j < 16; j++){
????????????????fprintf(stdout, " %02x", (int)buf[i*16+j] & 0xFF);????
????????????}
????????????fprintf(stdout,"\n");
????????????fflush(stdout);
????????}
????????count -= size;
????????start += size;
????}
????

轉(zhuǎn)載于:https://www.cnblogs.com/yunnotes/archive/2013/04/19/3032446.html

總結(jié)

以上是生活随笔為你收集整理的直接读取硬盘扇区的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。