⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readblock.c

📁 create raid tool at linux
💻 C
字号:
# include <stdio.h># include <errno.h># include <string.h># include <stdlib.h># include <fcntl.h># define BLOCK_SIZE		(32*1024)char *progname = "readblock";static char *dev_names[] = {	"/dev/hda12",	"/dev/hda13",	"/dev/hda14",	"/dev/hda15",};main (int argc, char **argv){	unsigned long block;	int dd_idx = -1, fd;	long buf[BLOCK_SIZE / sizeof (long)];	if (argc != 3) {		fprintf (stderr, "Usage: %s <disk> <block>\n", progname);		exit (1);	}	dd_idx = atol (argv[1]);	if (dd_idx < 0 || dd_idx > 3) {		fprintf (stderr, "%s: disk out of range 0-3 (%d)\n", progname,		    dd_idx);		exit (2);	}	block = (unsigned long) atol (argv[2]);	if ((fd = open (dev_names[dd_idx], O_RDONLY)) < 0) {		fprintf (stderr, "%s: can't open %s for reading (%s)\n",		    progname, dev_names[dd_idx], strerror (errno));		exit (3);	}	if (lseek (fd, block * BLOCK_SIZE, SEEK_SET) < 0) {		fprintf (stderr, "%s: lseek failed (%s)\n", progname, 		    strerror (errno));		exit (4);	}	if (read (fd, (char *) buf, sizeof (buf)) < 0) {		fprintf (stderr, "%s: read failed (%s)\n", progname, 		    strerror (errno));		exit (5);	}	close (fd);	printf ("disk %d, block %lu, *block = %ld\n", dd_idx, block, *buf);	exit (0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -