#include #include #include int my_read(void *, char *, int); int main(int argc, char *argv[]) { FILE *fp; char buf[100] = ""; if (argc < 2) { fprintf(stderr, "usage: %s filename\n", argv[0]); exit(EXIT_FAILURE); } fp = fopen(argv[1], "rt"); if (!fp) { perror("fopen"); exit(EXIT_FAILURE); } fp->_read = my_read; /* override NetBSD's read function */ fread(buf, sizeof(char), 10, fp); printf("%s\n", buf); fclose(fp); return EXIT_SUCCESS; } int my_read(void *cookie, char *buf, int n) { return __sread(cookie, buf, n); }