if (read (fd, buf, len) != len) {
if (lseek(fd, 0, SEEK_SET) == -1 || read (fd, buf, len) != len) {
malloc_create (fbuf *f, int fd, size_t len, fbuf_flags flags){    void *buf;    buf = malloc (len);    if (buf == NULL) {	close(fd);	return ENOMEM;    }    if (read (fd, buf, len) != len) {	free(buf);	close(fd);	return errno;    }    f->buf   = buf;    f->fd    = fd;    f->len   = len;    f->flags = flags;    return 0;}