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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? qfsfileengine.cpp

?? QT 開發環境里面一個很重要的文件
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************** 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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美天堂亚洲电影院在线播放| 国产欧美一区二区精品性色超碰| 日韩欧美久久久| 欧美国产日韩亚洲一区| 视频在线观看一区| 成人免费va视频| 日韩欧美国产三级电影视频| 亚洲日本欧美天堂| 国产一区二区福利视频| 欧美日韩一区二区三区四区五区| 国产精品免费免费| 韩国成人福利片在线播放| 色婷婷精品久久二区二区蜜臂av | 精品少妇一区二区三区免费观看| 成人免费在线视频观看| 久久成人麻豆午夜电影| 欧美日韩大陆一区二区| 亚洲激情综合网| 成人毛片老司机大片| 久久久电影一区二区三区| 免费观看久久久4p| 欧美一区二区在线免费播放| 亚洲裸体xxx| 99视频精品免费视频| 国产欧美日韩综合精品一区二区| 韩国欧美国产1区| 欧美一区二区三区视频免费| 亚洲123区在线观看| 欧美在线free| 亚洲丰满少妇videoshd| 欧美日韩高清不卡| 婷婷丁香激情综合| 91精品国产综合久久小美女| 视频一区欧美日韩| 欧美一区二区三区喷汁尤物| 视频一区欧美精品| 欧美一区二区三区啪啪| 日本91福利区| 精品欧美一区二区三区精品久久| 捆绑调教美女网站视频一区| 精品日韩欧美在线| 国产精品亚洲综合一区在线观看| 久久久久久久电影| 成人在线综合网| 国产精品成人免费| 在线观看亚洲精品视频| 婷婷国产在线综合| 精品免费国产二区三区| 国产大片一区二区| 亚洲人成在线观看一区二区| 欧美色图一区二区三区| 日本美女视频一区二区| 久久久噜噜噜久久人人看| 成人av资源网站| 亚洲精品欧美激情| 欧美一区二区三区在线观看视频| 久久99国产精品久久99| 欧美国产精品中文字幕| 欧美日韩一区 二区 三区 久久精品| 亚洲aⅴ怡春院| 欧美精品一区在线观看| 色婷婷综合久久久| 久久国产欧美日韩精品| 综合久久久久久久| 日韩欧美激情在线| 波多野结衣中文字幕一区| 亚洲电影第三页| 国产色婷婷亚洲99精品小说| 在线亚洲免费视频| 国产资源精品在线观看| 亚洲精品欧美专区| 久久九九全国免费| 欧美在线免费观看视频| 国产成人午夜视频| 天天色天天操综合| 中文字幕一区二区日韩精品绯色| 欧美一级理论片| 91蜜桃免费观看视频| 激情久久五月天| 亚洲高清免费一级二级三级| 中文在线一区二区| 日韩视频免费观看高清完整版 | 日韩av一区二区在线影视| 日本一区二区免费在线观看视频| 欧美日韩精品电影| 成人精品免费看| 久久精品国产免费看久久精品| 亚洲免费色视频| 国产三级精品视频| 精品久久国产97色综合| 在线这里只有精品| eeuss鲁片一区二区三区 | 日韩精品一区二区三区在线播放 | 在线综合视频播放| 91蜜桃在线观看| 国产成人亚洲精品青草天美| 美国十次综合导航| 日韩和欧美一区二区| 亚洲精品久久嫩草网站秘色| 国产精品入口麻豆九色| 久久精品亚洲精品国产欧美| 日韩一区二区三区视频在线观看 | 91首页免费视频| 国产成人av一区二区三区在线观看| 奇米在线7777在线精品| 亚洲成人一区在线| 亚洲国产精品久久久久秋霞影院| 亚洲色图视频网| 18成人在线观看| 中文字幕一区不卡| 中文字幕一区在线| 亚洲欧美另类图片小说| 亚洲女子a中天字幕| 亚洲欧洲无码一区二区三区| 国产精品系列在线| 亚洲欧洲无码一区二区三区| 最新国产精品久久精品| 中文字幕制服丝袜一区二区三区 | 久久综合九色综合97婷婷女人| 日韩欧美高清一区| 欧美精品一区二区三区高清aⅴ | 国产自产2019最新不卡| 精品一区二区在线免费观看| 久久精品国产一区二区三区免费看| 日本中文字幕一区| 青青草97国产精品免费观看无弹窗版| 免费观看30秒视频久久| 精品无人码麻豆乱码1区2区| 国产成人精品www牛牛影视| 成人精品小蝌蚪| 91免费视频观看| 欧美丰满一区二区免费视频| 欧美mv日韩mv国产网站app| 精品国内二区三区| 中文字幕在线观看不卡视频| 一区二区在线看| 日本aⅴ精品一区二区三区| 国产麻豆成人精品| 97久久精品人人澡人人爽| 欧美三电影在线| 久久久三级国产网站| 亚洲欧美视频在线观看| 石原莉奈在线亚洲二区| 国产成人aaa| 在线欧美小视频| 91精品综合久久久久久| 欧美极品aⅴ影院| 亚洲国产精品精华液网站| 麻豆专区一区二区三区四区五区| 国产成人在线网站| 91久久精品日日躁夜夜躁欧美| 555夜色666亚洲国产免| 国产三级三级三级精品8ⅰ区| 亚洲一区二区在线免费看| 久久福利视频一区二区| 一本一道久久a久久精品综合蜜臀| 欧美高清性hdvideosex| 国产精品久久久久影院| 久久精品久久99精品久久| 色综合天天做天天爱| 亚洲精品一区二区三区香蕉 | 日本女人一区二区三区| 高清成人在线观看| 欧美一区二区三区四区高清| 亚洲人成小说网站色在线| 麻豆国产一区二区| 欧美亚洲精品一区| 国产精品久久久久久久久免费相片| 日日噜噜夜夜狠狠视频欧美人| www.成人在线| 久久久久久久网| 日韩黄色免费网站| 91久久精品一区二区三| 久久精品亚洲麻豆av一区二区| 香蕉成人啪国产精品视频综合网| 国产激情视频一区二区在线观看| 91精品国产免费| 亚洲国产婷婷综合在线精品| www.亚洲国产| 国产日产欧产精品推荐色| 日日夜夜免费精品| 欧美性淫爽ww久久久久无| 亚洲欧洲av在线| 成人午夜伦理影院| 国产女人18毛片水真多成人如厕 | 日本aⅴ亚洲精品中文乱码| 一本色道久久综合亚洲精品按摩| 久久久久国产精品人| 久久精品国产在热久久| 欧美一级电影网站| 日本v片在线高清不卡在线观看| 在线一区二区三区四区五区| 亚洲欧洲国产专区| 92国产精品观看| 亚洲欧洲av色图| 91色乱码一区二区三区| 亚洲免费在线视频一区 二区| 不卡视频在线观看| 专区另类欧美日韩| 91国产精品成人|