|
|
1.1 root 1: #include "stdio.h"
2: extern int errno;
3:
4: char buf[512];
5:
6: main(argc, argv)
7: char **argv;
8: { int fd, n, i, j;
9: short *p = (short *) buf;
10: if(argc != 3) {
11: fprintf(stderr, "%s raw-disk sn\n", argv[0]);
12: exit(0);
13: }
14: fd = open(argv[1], 2);
15: n = atoi(argv[2]);
16: if(fd < 0 || lseek(fd, n*512, 0) < 0) {
17: perror("begin");
18: exit(1);
19: }
20: foo:
21: lseek(fd, n*512, 0);
22: if (read(fd, buf, sizeof(buf)) != sizeof(buf))
23: perror("read");
24: for(i = 0; i < 16; i++) {
25: for(j = 0; j < 16; j++)
26: printf("%o ", p[16 * i + j] & 0xffff);
27: putchar('\n');
28: }
29: printf("write?\n");
30: if((i = getchar()) == 'y') {
31: wr:
32: lseek(fd, n*512, 0);
33: if (write(fd, buf, sizeof(buf)) != sizeof(buf))
34: perror("write");
35: (void) getchar();
36: goto foo;
37: }
38: else if(i == 'c') {
39: for(j = 0; j < 512; j++)
40: buf[j] = 0;
41: goto wr;
42: }
43: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.