検索
ホームページデータベースmysql チュートリアル快速掌握Mysql数据库对文件操作的封装_MySQL
快速掌握Mysql数据库对文件操作的封装_MySQLJun 01, 2016 pm 02:12 PM
ウイルスサイバーカフェ情報ソフトウェア

快速掌握 Mysql数据库对文件操作的封装

在查看Mysql对文件的操作中,它在不同的操作系统上对文件的操作,除了使用标准C运行库函数,包括open、close、seek等,在Win32下的文件和目录操作函数使用了CreatFile、CloseHandl、SetFilePointer等,很多人可能不明白为什么对文件的操作要封装出两套函数。

其实使用API和标准库函数都可以生成文本文件和二进制文件,在这点上没有区别。同read()对应的是ReadFile,同write()对应的是WriteFile,同seek()对应的是SetFilePointer,同close对应的是CloseHandle。这两套函数都可以使用。但是Win 32系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API函数CreateFile来打开或创建的。该函数的声明为:

HANDLE CreateFile(

LPCTSTR lpFileName, // 文件名

DWORD dwDesiredAccess, // 访问模式

DWORD dwShareMode, // 共享模式

LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 通常为NULL

DWORD dwCreationDistribution, // 创建方式

DWORD dwFlagsAndAttributes, // 文件属性和标志

HANDLE hTemplateFile // 临时文件的句柄,通常为NULL

如果调用成功,那么该函数返回文件的句柄,如果调用失败,则函数返回:

INVALID_HANDLE_VALUE。

在用ReadFile和WriteFile读写时,既可以同步执行,也可以异步执行。ReadFile和WriteFile函数是否为执行异步操作是由CreateFile函数决定的。如果在调用CreateFile创建句柄时指定了FILE_FLAG_OVERLAPPED标志,那么调用ReadFile和WriteFile对该句柄进行的读写操作就是异步的,如果未指定异步标志,则读写操作是同步的。在同步执行时,函数直到操作完成后才返回。这意味着在同步执行时线程会被阻塞,从而导致效率下降。在异步执行时,即使操作还未完成,调用的函数也会立即返回。费时的I/O操作在后台进行,这样线程就可以干别的事情。这样可以大大的提高效率。这一点是值得我们学习和借鉴的,对于我们在文件的操作方面也可以对win32系统进行封装来提高文件操作的效率。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
telegram是什么软件telegram是什么软件Jul 07, 2022 pm 05:05 PM

Telegram是一款跨平台的即时通讯软件,用户可以相互交换加密与自毁消息,发送照片、影片等所有类型文件;Telegram有加密聊天的功能,使用这种功能,聊天双方的内容完全保密,不会担心被监控或被第三方偷窥。官方提供Android、iOS、Windows、macOS、Linux和网页版等多种平台客户端;同时官方开放应用程序接口,有许多第三方的客户端可供选择 。

armoury crate是什么软件armoury crate是什么软件Jul 18, 2022 pm 03:52 PM

armoury crate是一款简易实用,功能全面的华硕系统控制软件;通过Armoury Crate平台,可以启动主页面上的系统性能模式调整、设置相关应用软件、获取系统信息,当机器连接支持的外设时,也可以使用Armoury Crate中所整合的Lighting、AURA Sync功能进行各种灯光特效的设定。

xrkit是什么软件xrkit是什么软件Jul 18, 2022 pm 03:13 PM

XRKit是为华为手机场景提供场景化、组件化的AR解决方案的框架软件,也就为华为相机,提供了虚拟模型在真实世界中的呈现。XRKit软件支持AR SDK,能与Unity3D引擎兼容,包括PTC Vuforia,ARKit,ARCore等。为AR呈现能力、人脸特效、光影特效;它属于华为XR生态的基础性软件。

glance by mirametrix是什么软件glance by mirametrix是什么软件Jul 28, 2022 am 10:59 AM

glance by mirametrix是一款眼球追踪软件;glance是由Mirametrix开发的应用程序,软件配合红外摄像头可识别用户脸和眼睛的方向,其中主要包括了状态检测、智能指针和窗口分屏三个功能。

ldplayer是什么软件ldplayer是什么软件Aug 02, 2022 pm 02:59 PM

ldplayer是一款多功能Android操作系统的模拟器,通过它可以直接在PC上运行Android智能手机游戏,是将家用PC或笔记本电脑转变为运行移动软件的游戏机的方法;ldplayer可以用来进行联网,用户可以和其他人一起开启联机对战。

推特是什么软件推特是什么软件Jul 13, 2022 am 11:07 AM

推特(Twitter)是一个社交网络及微博客服务软件,是一家美国的公司;Twitter利用无线网络、有线网络、通信技术进行即时通讯,是微博客的典型应用,允许用户将自己的最新动态和想法以短信息的形式发送给手机和个性化网站群。

commercial service是什么软件commercial service是什么软件Aug 11, 2022 pm 04:17 PM

commercial service指的是商业服务软件;该软件主要为提供产品维修、系统升级、检测换机以及产品咨询等服务,服务的产品包括手机、电视、手表、耳机以及其他配件。

rav endpoint protection是什么软件rav endpoint protection是什么软件Aug 11, 2022 pm 04:06 PM

rav endpoint protection是瑞星杀毒软件;RAV是“RisingAnti-virus”的缩写,是瑞星反病毒软件的意思,瑞星杀毒软件采用获得欧盟及中国专利的六项核心技术,形成全新软件内核代码,具有八大绝技和多种应用特性。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。