Files

/* head.c ....Sam Bent.... 1/14/88 */

/* print the first 10 lines of a named file */

#include <stdio.h>

#define MAXLINELENGTH ...200
#define NUM_LINES ........10

main()
{
char name[50];
FILE *fp;
int k;
char *t;
char buffer[MAXLINELENGTH];

....printf("File name: ");
....scanf("%s", name);
....fp = fopen(name, "r"); .../* "r" means read-only */

....if (fp==NULL) { ............/* NULL means error from fopen */
........printf("Can't open %s\n", name);
........exit(-1); .............../* sets the shell variable 'status' */
.......}

....for (k=0; k<NUM_LINES; ++k) {
........t = fgets(buffer, MAXLINELENGTH, fp);
........if (t==NULL) break;
........printf("%5d %s", k+1, buffer);
........}

....exit(0);
}



/* hunt.c ....Sam Bent.... 1/14/88 */
/* browse around a file at random */

#include <stdio.h>
#define MAXLINELENGTH 200

main()
{
char name[50], buffer[MAXLINELENGTH];
FILE *fp;
float percent;
long length, address;

....printf("File name: ");
....scanf("%s", name);
....fp = fopen(name, "r");

....if (fp==NULL) {
........printf("Can't open %s\n", name);
........exit(-1);
........}
....fseek(fp, 0, 2); ..../* 2 means offset from end of file */
....length = ftell(fp);

....for (;;) {
........printf("Percentage: ");
........scanf("%f", &percent);
........if (percent<0) break;
........address = percent * length / 100;
........fseek(fp, address, 0); /* offset from beginning */
........while (getc(fp) != '\n') ; /* skip to end of line */
........address = ftell(fp);
....v...fgets(buffer, MAXLINELENGTH, fp);
........printf("0x%06x %s", address, buffer);
........}


....exit(0);
}