Opening an Existing Block File typedef struct { /* sequential file header */ size_t recsize; /* record size */ } shdr_t; typedef struct { /* sequential file control structure */ shdr_t shdr; /* file header */ BLKFILE *bp; /* block file pointer */ } seq_t; seq_t sb[SOPEN_MAX]; /* sequential file control structure table */ seq_t *sp = sb[0]; /* open sequential file */ sp->bp = bopen(filename, "r+", sizeof(shdr_t), (size_t)1, (size_t)0); if (sp->bp == NULL); /* error */ } /* read file header to get record size */ rs = bgeth(sp->bp, (void *)&sp->shdr); if (rs == -1) { /* error */ } /* set up buffering */ rs = bsetvbuf(sp->bp, NULL, sp->shdr.recsize, SBUFCNT); if (rs != 0) { /* error */ }