int EbrOpenWithPermission(const char* file, int mode, int share, int pmode) { if (strcmp(file, "/dev/urandom") == 0) { EbrFileDevRandom* ret = new EbrFileDevRandom(); EbrFile* addedFile = EbrAllocFile(ret); return addedFile->idx; } bool stop = false; if (stop) { return -1; } int ret = -1; _sopen_s(&ret, CPathMapper(file), mode, share, pmode); if (ret == -1) { return -1; } EbrIOFile* newFile = new EbrIOFile(); newFile->filefd = ret; EbrFile* addedFile = EbrAllocFile(newFile); return addedFile->idx; }
int EbrIOFile::Dup() { int newHandle = _dup(filefd); EbrIOFile* newFile = new EbrIOFile(); newFile->filefd = newHandle; EbrFile* ret = EbrAllocFile(newFile); return ret->idx; }
EbrFile* EbrFopen(const char* filename, const char* mode) { if (strcmp(filename, "/dev/urandom") == 0) { EbrFileDevRandom* ret = new EbrFileDevRandom(); return EbrAllocFile(ret); } bool stop = false; if (stop) { return NULL; } FILE* fp; fopen_s(&fp, CPathMapper(filename), mode); if (!fp) { return NULL; } EbrIOFile* ret = new EbrIOFile(); ret->fp = fp; ret->filefd = _fileno(fp); return EbrAllocFile(ret); }
EbrFile* EbrFreopen(const char* filename, const char* mode, EbrFile* cur) { FILE* fp = NULL; freopen_s(&fp, CPathMapper(filename), mode, ((EbrIOFile*)cur)->fp); if (!fp) return NULL; EbrIOFile* ret = new EbrIOFile(); ret->fp = fp; ret->filefd = _fileno(fp); return EbrAllocFile(ret); }
// Stdio funcs EbrFile* EbrFmake(FILE* fp) { EbrIOFile* ret = new EbrIOFile(); ret->fp = fp; ret->filefd = _fileno(fp); return EbrAllocFile(ret); }