Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
int EbrIOFile::Dup() {
    int newHandle = _dup(filefd);
    EbrIOFile* newFile = new EbrIOFile();
    newFile->filefd = newHandle;
    EbrFile* ret = EbrAllocFile(newFile);

    return ret->idx;
}
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
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);
}
Exemplo n.º 5
0
//  Stdio funcs
EbrFile* EbrFmake(FILE* fp) {
    EbrIOFile* ret = new EbrIOFile();
    ret->fp = fp;
    ret->filefd = _fileno(fp);
    return EbrAllocFile(ret);
}