亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? qfsfileengine.cpp

?? QT 開發(fā)環(huán)境里面一個(gè)很重要的文件
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the QtCore module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "qfsfileengine_p.h"#include "qdatetime.h"#include <errno.h>#include <stdio.h>#ifdef Q_OS_WIN#  ifndef S_ISREG#    define S_ISREG(x)   (((x) & S_IFMT) == S_IFREG)#  endif#  ifndef S_ISCHR#    define S_ISCHR(x)   (((x) & S_IFMT) == S_IFCHR)#  endif#  ifndef S_ISFIFO#    define S_ISFIFO(x) false#  endif#  ifndef S_ISSOCK#    define S_ISSOCK(x) false#  endif#endif/*! \class QFSFileEngine    \brief The QFSFileEngine class implements Qt's default file engine.    \since 4.1    This class is part of the file engine framework in Qt. If you only want to    access files or directories, use QFile, QFileInfo or QDir instead.    QFSFileEngine is the default file engine for accessing regular files. It    is provided for convenience; by subclassing this class, you can alter its    behavior slightly, without having to write a complete QAbstractFileEngine    subclass. To install your custom file engine, you must also subclass    QAbstractFileEngineHandler and create an instance of your handler.    It can also be useful to create a QFSFileEngine object directly if you    need to use the local file system inside QAbstractFileEngine::create(), in    order to avoid recursion (as higher-level classes tend to call    QAbstractFileEngine::create()).*///**************** QFSFileEnginePrivateQFSFileEnginePrivate::QFSFileEnginePrivate() : QAbstractFileEnginePrivate(){    sequential = 0;    tried_stat = 0;#ifdef Q_OS_UNIX    need_lstat = 1;    is_link = 0;#endif    is_readonly = 0;    fd = -1;    fh = 0;    lastIOCommand = IOFlushCommand;    lastFlushFailed = false;    closeFileHandle = false;    init();}/*!    Constructs a QFSFileEngine for the file name \a file.*/QFSFileEngine::QFSFileEngine(const QString &file) : QAbstractFileEngine(*new QFSFileEnginePrivate){    Q_D(QFSFileEngine);    d->file = QFSFileEnginePrivate::fixToQtSlashes(file);}/*!    Constructs a QFSFileEngine.*/QFSFileEngine::QFSFileEngine() : QAbstractFileEngine(*new QFSFileEnginePrivate){}/*!    \internal*/QFSFileEngine::QFSFileEngine(QFSFileEnginePrivate &dd)    : QAbstractFileEngine(dd){}/*!    Destructs the QFSFileEngine.*/QFSFileEngine::~QFSFileEngine(){    Q_D(QFSFileEngine);    if (d->closeFileHandle) {        if (d->fh) {            int ret;            do {                ret = fclose(d->fh);            } while (ret == EOF && errno == EINTR);        } else if (d->fd != -1) {            int ret;            do {                ret = QT_CLOSE(d->fd);            } while (ret == -1 && errno == EINTR);        }    }}/*!    \reimp*/void QFSFileEngine::setFileName(const QString &file){    Q_D(QFSFileEngine);    d->file = QFSFileEnginePrivate::fixToQtSlashes(file);    d->tried_stat = 0;}static QByteArray openModeToFopenMode(QIODevice::OpenMode flags, const QString &fileName = QString()){    QByteArray mode;    if ((flags & QIODevice::ReadOnly) && !(flags & QIODevice::Truncate)) {        mode = "rb";        if (flags & QIODevice::WriteOnly) {            if (!fileName.isEmpty() &&QFile::exists(fileName))                mode = "rb+";            else                mode = "wb+";        }    } else if (flags & QIODevice::WriteOnly) {        mode = "wb";        if (flags & QIODevice::ReadOnly)            mode += "+";    }    if (flags & QIODevice::Append) {        mode = "ab";        if (flags & QIODevice::ReadOnly)            mode += "+";    }    return mode;}/*!    \reimp*/bool QFSFileEngine::open(QIODevice::OpenMode flags){    Q_D(QFSFileEngine);    d->lastFlushFailed = false;    if (d->file.isEmpty()) {        qWarning("QFSFileEngine::open: No file name specified");        setError(QFile::OpenError, QLatin1String("No file name specified"));        return false;    }    if (flags & QFile::Append)        flags |= QFile::WriteOnly;#ifdef Q_OS_WIN    if (d->file.startsWith("//./")) {#endif    do {#if defined(Q_OS_WIN) && defined(_MSC_VER) && _MSC_VER >= 1400        d->fh = 0;        fopen_s(&d->fh, QFile::encodeName(QDir::toNativeSeparators(d->file)).constData(),                         openModeToFopenMode(flags, d->file).constData());#else        d->fh = QT_FOPEN(QFile::encodeName(QDir::toNativeSeparators(d->file)).constData(),                         openModeToFopenMode(flags, d->file).constData());#endif    } while (!d->fh && errno == EINTR);    if (!d->fh) {        setError(errno == EMFILE ? QFile::ResourceError : QFile::OpenError,                 qt_error_string(int(errno)));        return false;    }    if ((flags & QIODevice::WriteOnly) == 0)        d->is_readonly = 1;    if (flags & QIODevice::Unbuffered)        setvbuf(d->fh, 0, _IONBF, 0);    if (flags & QIODevice::Append) {        int ret;        do {            ret = QT_FSEEK(d->fh, 0, SEEK_END);        } while (ret == -1 && errno == EINTR);    }    d->closeFileHandle = true;    d->fd = QT_FILENO(d->fh);    QT_STATBUF st;    if (QT_FSTAT(QT_FILENO(d->fh), &st) != 0)#ifdef Q_OS_UNIX        return false;#endif    d->sequential = S_ISCHR(st.st_mode) || S_ISFIFO(st.st_mode) || S_ISSOCK(st.st_mode);    return true;#ifdef Q_OS_WIN    } else {#endif    int oflags = QT_OPEN_RDONLY;    if ((flags & QFile::ReadWrite) == QFile::ReadWrite) {        oflags = QT_OPEN_RDWR | QT_OPEN_CREAT;    } else if (flags & QFile::WriteOnly) {        oflags = QT_OPEN_WRONLY | QT_OPEN_CREAT;    }    if (flags & QFile::Append) {        oflags |= QT_OPEN_APPEND;    } else if (flags & QFile::WriteOnly) {        if ((flags & QFile::Truncate) || !(flags & QFile::ReadOnly))            oflags |= QT_OPEN_TRUNC;    }#if defined(Q_OS_MSDOS) || defined(Q_OS_WIN32) || defined(Q_OS_OS2)    oflags |= QT_OPEN_BINARY; // we handle all text translations our self.#endif    d->fd = d->sysOpen(d->file, oflags);    if(d->fd != -1) {        // Before appending, seek to the end of the file to allow        // at() to return the correct position before ::write()        //  has been called.        if (flags & QFile::Append)            QT_LSEEK(d->fd, 0, SEEK_END);        d->closeFileHandle = true;        d->sequential = 0;        struct stat st;        ::fstat(d->fd, &st);        if ((st.st_mode & S_IFMT) != S_IFREG)            d->sequential = 1;        return true;    }    setError(errno == EMFILE ? QFile::ResourceError : QFile::OpenError, qt_error_string(errno));    return false;#ifdef Q_OS_WIN    }#endif}/*!    Opens the file descriptor \a fd to the file engine, using the open mode \a    flags.*/bool QFSFileEngine::open(QIODevice::OpenMode flags, int fd){    Q_D(QFSFileEngine);    d->lastFlushFailed = false;    d->closeFileHandle = false;#ifdef Q_OS_UNIX    d->fh = fdopen(fd, openModeToFopenMode(flags).constData());    if (!d->fh) {        setError(errno == EMFILE ? QFile::ResourceError : QFile::OpenError,                 qt_error_string(int(errno)));        return false;    }    if ((flags & QIODevice::WriteOnly) == 0)        d->is_readonly = 1;    if (flags & QIODevice::Unbuffered)        setvbuf(d->fh, 0, _IONBF, 0);    if (flags & QIODevice::Append) {        int ret;        do {            ret = QT_FSEEK(d->fh, 0, SEEK_END);        } while (ret == -1 && errno == EINTR);    }    d->fd = QT_FILENO(d->fh);    QT_STATBUF st;    if (QT_FSTAT(QT_FILENO(d->fh), &st) != 0)        return false;    d->sequential = S_ISCHR(st.st_mode) || S_ISFIFO(st.st_mode) || S_ISSOCK(st.st_mode);    return true;#else    Q_UNUSED(flags);    d->fd = fd;    if(d->fd != -1) {        d->sequential = 0;        struct stat st;        ::fstat(d->fd, &st);        if ((st.st_mode & QT_STAT_MASK) != QT_STAT_REG || !fd) //stdin is non seekable            d->sequential = 1;        return true;    }    return false;#endif}/*!    Opens the file handle \a fh using the open mode \a flags.*/bool QFSFileEngine::open(QIODevice::OpenMode flags, FILE *fh){    Q_D(QFSFileEngine);    d->lastFlushFailed = false;    Q_UNUSED(flags);    d->fh = fh;    d->fd = QT_FILENO(fh);    QT_STATBUF st;    if (QT_FSTAT(QT_FILENO(fh), &st) != 0)        return false;#ifdef Q_OS_WIN32    HANDLE hnd = (HANDLE)_get_osfhandle(d->fd);    if (hnd == INVALID_HANDLE_VALUE)        return false;    DWORD ftype = ::GetFileType(hnd);    d->sequential = ftype == FILE_TYPE_CHAR || ftype == FILE_TYPE_PIPE;#else    d->sequential = S_ISCHR(st.st_mode) || S_ISFIFO(st.st_mode) || S_ISSOCK(st.st_mode);#endif    d->closeFileHandle = false;#ifdef Q_OS_UNIX    if ((flags & QIODevice::WriteOnly) == 0)        d->is_readonly = 1;#endif    return true;}/*!    \reimp*/bool QFSFileEngine::close(){    Q_D(QFSFileEngine);    bool flushed = !d->lastFlushFailed && flush();    d->tried_stat = 0;    if (d->fh) {        bool closed = true;        if (d->closeFileHandle) {            int ret;            do {                ret = fclose(d->fh);            } while (ret == EOF && errno == EINTR);            closed = (ret == 0);        }        d->fh = 0;        d->fd = -1;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区视频免费播放| 精品国产乱码久久久久久蜜臀| 午夜精品福利一区二区蜜股av | 亚洲人成网站影音先锋播放| 91精品国产色综合久久ai换脸| 成人三级在线视频| 久久国内精品自在自线400部| 亚洲美女屁股眼交3| 久久亚洲一区二区三区四区| 欧美日韩一区二区三区视频| 91香蕉视频污在线| 国产剧情一区二区三区| 久久精品国产成人一区二区三区| 一区二区三区中文字幕电影 | 日本中文在线一区| 一区二区在线观看av| 国产欧美在线观看一区| 国产精品伦一区| 日韩视频一区二区| 欧美福利视频一区| 欧美日韩在线亚洲一区蜜芽| 成人免费视频免费观看| 国产成人精品综合在线观看| 麻豆高清免费国产一区| 日韩av不卡在线观看| 亚洲午夜久久久久久久久电影院| 亚洲少妇屁股交4| 国产精品国产三级国产aⅴ入口| 久久久久久综合| 日韩免费看网站| 日韩一卡二卡三卡四卡| 欧美老女人第四色| 欧美精品777| 91精品国产一区二区三区蜜臀| 欧美乱熟臀69xxxxxx| 欧美影院精品一区| 在线欧美日韩精品| 欧洲人成人精品| 欧美日韩一区二区三区在线| 欧美日韩大陆一区二区| 欧美色偷偷大香| 欧美美女一区二区| 日韩无一区二区| 久久午夜羞羞影院免费观看| 2020日本不卡一区二区视频| 精品国产一区二区三区忘忧草| 久久综合丝袜日本网| 国产免费成人在线视频| 国产精品传媒在线| 亚洲欧美区自拍先锋| 亚洲bt欧美bt精品| 麻豆久久一区二区| 豆国产96在线|亚洲| 不卡av在线网| 91九色02白丝porn| 91精品国产欧美一区二区成人| 精品免费一区二区三区| 久久久五月婷婷| 中文字幕亚洲精品在线观看 | 亚洲欧洲中文日韩久久av乱码| 亚洲精品第一国产综合野| 午夜在线电影亚洲一区| 日韩电影在线免费看| 国产精品影视在线观看| 99视频一区二区| 欧美日韩精品专区| 精品免费视频.| **性色生活片久久毛片| 日韩福利视频导航| 国产91露脸合集magnet| 一本到不卡精品视频在线观看| 在线成人高清不卡| 久久久99精品久久| 亚洲一二三区在线观看| 国产一区二区三区蝌蚪| 色婷婷综合中文久久一本| 日韩美女天天操| 亚洲你懂的在线视频| 九九精品一区二区| 欧洲av在线精品| 久久综合网色—综合色88| 一二三区精品福利视频| 国产综合成人久久大片91| 色综合久久久久综合| 日韩欧美亚洲一区二区| 亚洲欧洲日韩在线| 国内精品伊人久久久久影院对白| 色综合久久天天| 久久久久免费观看| 亚瑟在线精品视频| 丰满少妇久久久久久久| 欧美日韩国产高清一区二区三区 | 国产成人自拍网| 欧美日韩免费在线视频| 国产色婷婷亚洲99精品小说| 亚洲影视在线播放| 国产99久久久国产精品免费看 | 中文字幕免费观看一区| 日韩在线一区二区三区| eeuss鲁片一区二区三区在线观看| 日韩亚洲欧美成人一区| 亚洲色图视频网| 国产成人福利片| 日韩一区二区影院| 夜夜嗨av一区二区三区中文字幕| 国产精品一区二区久久精品爱涩| 精品视频一区三区九区| 亚洲免费大片在线观看| 成人国产在线观看| 亚洲精品在线观看视频| 偷拍一区二区三区四区| 色乱码一区二区三区88| 中文字幕成人在线观看| 国内精品自线一区二区三区视频| 91精品国产综合久久久久久漫画| 亚洲精品高清在线观看| 97aⅴ精品视频一二三区| 国产色综合久久| 国产一二三精品| 日韩精品一区二区在线| 亚洲国产日日夜夜| 欧美在线观看一区| 亚洲六月丁香色婷婷综合久久| 成人免费视频caoporn| 久久久久久久久一| 国产精品主播直播| 国产亚洲美州欧州综合国| 久久激情综合网| 精品久久一区二区| 韩国欧美国产一区| 国产亚洲欧美日韩日本| 国产精品18久久久久久vr| 精品乱人伦小说| 精油按摩中文字幕久久| 亚洲精品一区二区三区精华液| 蜜桃视频第一区免费观看| 91精品国产欧美一区二区18| 蜜桃久久久久久| 欧美mv和日韩mv的网站| 狠狠色丁香婷婷综合| 精品欧美一区二区三区精品久久 | 亚洲电影在线播放| 欧美日韩久久一区| 视频一区中文字幕| 日韩免费观看高清完整版| 精品亚洲免费视频| 国产精品三级电影| 91国产丝袜在线播放| 婷婷亚洲久悠悠色悠在线播放| 欧美一区二视频| 国产精品一区二区男女羞羞无遮挡| 久久精品一区二区三区四区| 丰满少妇久久久久久久| 亚洲男人天堂一区| 制服丝袜在线91| 国产乱子轮精品视频| 国产精品美女久久久久久久| 色噜噜狠狠成人中文综合| 午夜精品久久久久久久久久| 日韩精品在线看片z| 国产精品一区二区免费不卡 | 国产精品国产三级国产普通话99 | 裸体在线国模精品偷拍| 国产日产精品1区| 91免费精品国自产拍在线不卡| 亚洲一区二区三区四区五区中文 | 久久奇米777| 成人avav影音| 亚洲一区在线视频观看| 精品精品欲导航| av在线播放成人| 青娱乐精品视频| 亚洲欧洲另类国产综合| 337p亚洲精品色噜噜噜| 国产成人精品午夜视频免费| 亚洲香肠在线观看| 久久精品视频免费观看| 欧美体内she精高潮| 国产在线麻豆精品观看| 一区二区三区在线观看视频| 欧美大片国产精品| 欧洲av在线精品| 高清shemale亚洲人妖| 午夜日韩在线电影| 亚洲国产精品精华液2区45| 精品视频免费在线| 懂色av一区二区夜夜嗨| 日韩高清不卡在线| 自拍偷拍国产精品| 久久久另类综合| 91精品国产欧美一区二区18 | 久久综合一区二区| 欧美日韩一区二区电影| 成人一道本在线| 精品影院一区二区久久久| 亚洲一区二区三区中文字幕| 国产欧美日本一区二区三区| 欧美一区二区三区视频在线| 一本一本大道香蕉久在线精品| 国产乱码精品1区2区3区|