bool QFSFileEngine::setSize(qint64 size) { Q_D(QFSFileEngine); bool ret = false; if (d->fd != -1) ret = QT_FTRUNCATE(d->fd, size) == 0; else if (d->fh) ret = QT_FTRUNCATE(QT_FILENO(d->fh), size) == 0; else ret = QT_TRUNCATE(d->fileEntry.nativeFilePath().constData(), size) == 0; if (!ret) setError(QFile::ResizeError, qt_error_string(errno)); return ret; }
bool QFSFileEngine::setSize(qint64 size) { Q_D(QFSFileEngine); if (d->fd != -1) return !QT_FTRUNCATE(d->fd, size); return !QT_TRUNCATE(d->nativeFilePath.constData(), size); }
bool QFSFileEngine::setSize(qint64 size) { Q_D(QFSFileEngine); bool ret = false; TInt err = KErrNone; if (d->symbianFile.SubSessionHandle()) { TInt err = d->symbianFile.SetSize(size); ret = (err == KErrNone); if (ret && d->symbianFilePos > size) d->symbianFilePos = size; } else if (d->fd != -1) ret = QT_FTRUNCATE(d->fd, size) == 0; else if (d->fh) ret = QT_FTRUNCATE(QT_FILENO(d->fh), size) == 0; else { RFile tmp; QString symbianFilename(d->fileEntry.nativeFilePath()); err = tmp.Open(qt_s60GetRFs(), qt_QString2TPtrC(symbianFilename), EFileWrite); if (err == KErrNone) { err = tmp.SetSize(size); tmp.Close(); } ret = (err == KErrNone); } if (!ret) { QSystemError error; if (err) error = QSystemError(err, QSystemError::NativeError); else error = QSystemError(errno, QSystemError::StandardLibraryError); setError(QFile::ResizeError, error.toString()); } return ret; }
bool QSharedMemoryPrivate::create(int size) { if (!handle()) return false; const QByteArray shmName = QFile::encodeName(makePlatformSafeKey(key)); int fd; #ifdef O_CLOEXEC // First try with O_CLOEXEC flag, if that fails, fall back to normal flags EINTR_LOOP(fd, ::shm_open(shmName.constData(), O_RDWR | O_CREAT | O_EXCL | O_CLOEXEC, 0600)); if (fd == -1) EINTR_LOOP(fd, ::shm_open(shmName.constData(), O_RDWR | O_CREAT | O_EXCL, 0600)); #else EINTR_LOOP(fd, ::shm_open(shmName.constData(), O_RDWR | O_CREAT | O_EXCL, 0600)); #endif if (fd == -1) { const int errorNumber = errno; const QLatin1String function("QSharedMemory::attach (shm_open)"); switch (errorNumber) { case ENAMETOOLONG: case EINVAL: errorString = QSharedMemory::tr("%1: bad name").arg(function); error = QSharedMemory::KeyError; break; default: setErrorString(function); } return false; } // the size may only be set once int ret; EINTR_LOOP(ret, QT_FTRUNCATE(fd, size)); if (ret == -1) { setErrorString(QLatin1String("QSharedMemory::create (ftruncate)")); qt_safe_close(fd); return false; } qt_safe_close(fd); return true; }