示例#1
0
int
l3Open( rsComm_t *rsComm, int l1descInx ) {
    dataObjInfo_t *dataObjInfo;
    int l3descInx;
    int mode, flags;

    dataObjInfo = L1desc[l1descInx].dataObjInfo;

    std::string location;
    irods::error ret = irods::get_loc_for_hier_string( dataObjInfo->rescHier, location );
    if ( !ret.ok() ) {
        irods::log( PASSMSG( "l3Open - failed in get_loc_for_hier_string", ret ) );
        return -1;
    }

    if ( getStructFileType( dataObjInfo->specColl ) >= 0 ) {
        subFile_t subFile;
        memset( &subFile, 0, sizeof( subFile ) );
        rstrcpy( subFile.subFilePath, dataObjInfo->subPath, MAX_NAME_LEN );
        rstrcpy( subFile.addr.hostAddr, location.c_str(), NAME_LEN );
        subFile.specColl = dataObjInfo->specColl;
        subFile.mode = getFileMode( L1desc[l1descInx].dataObjInp );
        subFile.flags = getFileFlags( l1descInx );
        l3descInx = rsSubStructFileOpen( rsComm, &subFile );
    }
    else {
        mode = getFileMode( L1desc[l1descInx].dataObjInp );
        flags = getFileFlags( l1descInx );
        l3descInx = _l3Open( rsComm, dataObjInfo, mode, flags );
    }
    return l3descInx;
}
示例#2
0
bool QFileInfoPrivate::hasAccess(Access access) const
{
    if (!(getFileFlags(QAbstractFileEngine::FileInfoAll) & QAbstractFileEngine::LocalDiskFlag)) {
        switch (access) {
        case ReadAccess:
            return getFileFlags(QAbstractFileEngine::ReadUserPerm);
        case WriteAccess:
            return getFileFlags(QAbstractFileEngine::WriteUserPerm);
        case ExecuteAccess:
            return getFileFlags(QAbstractFileEngine::ExeUserPerm);
        default:
            return false;
        }
    }

    int mode = 0;
    switch (access) {
    case ReadAccess:
        mode = R_OK;
        break;
    case WriteAccess:
        mode = W_OK;
        break;
    case ExecuteAccess:
        mode = X_OK;
        break;
    };
#ifdef Q_OS_UNIX
    return QT_ACCESS(QFile::encodeName(data->fileName).data(), mode) == 0;
#endif
#ifdef Q_OS_WIN
    if ((access == ReadAccess && !getFileFlags(QAbstractFileEngine::ReadUserPerm))
        || (access == WriteAccess && !getFileFlags(QAbstractFileEngine::WriteUserPerm))) {
        return false;
    }
    if (access == ExecuteAccess)
        return getFileFlags(QAbstractFileEngine::ExeUserPerm);

    QT_WA( {
        return ::_waccess((TCHAR *)QFSFileEnginePrivate::longFileName(data->fileName).utf16(), mode) == 0;
    } , {
        return QT_ACCESS(QFSFileEnginePrivate::win95Name(data->fileName), mode) == 0;
示例#3
0
 bool isDir(int inode) {
     return getFileFlags(inode) & kFlagIsDir;
 }