- if (!mf->wr && errno == ENOENT && off == 0)
- return -2;
- logf (LOG_WARN|LOG_ERRNO, "Failed to open %s", mf->files[c].path);
- return -1;
+ if ((mf->files[c].fd = open(mf->files[c].path,
+ mf->wr ?
+ (O_BINARY|O_RDWR|O_CREAT) :
+ (O_BINARY|O_RDONLY), 0666)) < 0)
+ {
+ if (!mf->wr && errno == ENOENT && off == 0)
+ return -2;
+ logf (LOG_WARN|LOG_ERRNO, "Failed to open %s", mf->files[c].path);
+ return -1;
+ }