文件句柄C 语言中什么是“句柄”?“文件”和“流”又有什么异同?

文件句柄  时间:2021-06-07  阅读:()

linux 文件句柄 是哪个线程打开

我想可能是这两个原因造成的: 1:你在线程中打开句柄后又关闭,那么在后面线程创建句柄时因为之前这个使用的句柄已经释放,则后面线程可以继续使用。

2:没有加线程锁的原因,前一个线程打开文件创建句柄时后一个线程也已经启动并同时创建句柄...

句柄什么意思?

句柄(handle),有多种意义,其中第一种是指程序设计,第二种是指Windows编程。

现在大部分都是指程序设计/程序开发这类。

第一种解释:句柄是一种特殊的智能指针 。

当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。

第二种解释:整个Windows编程的基础。

一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。

应用程序能够通过句柄访问相应的对象的信息,但是句柄不是指针,程序不能利用句柄来直接阅读文件中的信息。

如果句柄不在I/O文件中,它是毫无用处的。

句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows大量使用了句柄来标识对象。

如何从文件的句柄得到文件名,用API函数.

方法一:CFile::GetFileName,实用 方便 msdn实例 try { // try to open the file CFile sysFile(_T("C:\WINDOWS\SYSTEM.INI"), CFile::modeRead); // print out path name and title information _tprintf(_T("Path is : "%s" "), (LPCTSTR) sysFile.GetFilePath()); _tprintf(_T("Name is : "%s" "), (LPCTSTR) sysFile.GetFileName()); _tprintf(_T("Title is: "%s" "), (LPCTSTR) sysFile.GetFileTitle()); // close the file handle sysFile.Close(); } catch (CFileException* pEx) { // if an error urs, just make a message box pEx->ReportError(); pEx->Delete(); } Output Path is : "C:WINDOWSSYSTEM.INI" Name is : "SYSTEM.INI" Title is: "System" 方法二 : FileApi --GetFullPathName The GetFullPathName function retrieves the full path and file name of a specified file. DWORD GetFullPathName( LPCTSTR lpFileName, // file name DWORD nBufferLength, // size of path buffer LPTSTR lpBuffer, // path buffer LPTSTR *lpFilePart // address of file name in path ); 然后再反序查找 路径中的第一个 "\",删去"\"之前的路径。

现在想到的就这两个。

文件名柄是什么意思?简单点,我是菜鸟

你是指文件句柄吗? 记得曾有资料给出这样的解释(大意):它类似于门把手,有它你可找到“门”这个对象,就可以控制对象"门"了,但觉得把它类比于门把手似乎并不贴切,感觉象是直译句柄这个词的词意,我们知道,其实文件句柄是一个十六位长度的二进制代码(Windows95后为32位无符号整数),代表一个已被打开文件的通道号,借助于这个句柄,你的应用程序即可使用这个相应的句柄对文件进行随意存取操作,说白了文件句柄其实是一串代表着特殊含义的号码; 当然其实系统是用句柄与一些资源联系起来的,当由系统管理,动态分配给你应用程序的某些资源的代号,你就可以使用句柄访问相应的资源了,在 Windows 中,窗口可以有许多种。

窗口可以是屏幕上的一块矩形封闭区域,比如您熟悉的应用程序窗口。

窗体上的控件(例如列表框或滚动条)也可以是窗口,但并不是所有类型的控件都是窗口。

桌面上的图标和桌面本身也是窗口。

因为所有这些类型的对象都是窗口,所以 Windows 可以用类似的方式处理它们。

Windows 给每个窗口一个唯一的句柄,通过句柄操纵该窗口。

许多 API 函数可返回句柄或者接受句柄作参数。

C 语言中什么是“句柄”?“文件”和“流”又有什么异同?

从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。

ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。

ASCII码文件可在屏幕上按字符显示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。

由于是按字符显示,因此能读懂文件内容。

二进制文件是按二进制的编码方式来存放文件的。

例如, 数5678的存储形式为: 00010110 00101110只占二个字节。

二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。

C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。

输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。

因此也把这种文件称作“流式文件”。

fopen函数用来打开一个文件进行读写的函数。

打开由path指定的文件,返回文件的句柄 open()打开文件进行读写的函数。

打开path指定的文件,根据ess指定的模式值读写。

陆零(¥25)云端专用的高性能、安全隔离的物理集群六折起

陆零网络是正规的IDC公司,我们采用优质硬件和网络,为客户提供高速、稳定的云计算服务。公司拥有一流的技术团队,提供7*24小时1对1售后服务,让您无后顾之忧。我们目前提供高防空间、云服务器、物理服务器,高防IP等众多产品,为您提供轻松上云、安全防护 为核心数据库、关键应用系统、高性能计算业务提供云端专用的高性能、安全隔离的物理集群。分钟级交付周期助你的企业获得实时的业务响应能力,助力核心业务飞速成...

digital-vm:VPS低至$4/月,服务器$80/月,10Gbps超大带宽,不限流量,机房可选:日本新加坡美国英国西班牙荷兰挪威丹麦

digital-vm,这家注册在罗马尼亚的公司在国内应该有不少人比较熟悉了,主要提供VPS业务,最高10Gbps带宽,还不限制流量,而且还有日本、新加坡、美国洛杉矶、英国、西班牙、荷兰、挪威、丹麦这些可选数据中心。2020年,digital-vm新增了“独立服务器”业务,暂时只限“日本”、“新加坡”机房,最高也是支持10Gbps带宽... 官方网站:https://digital-vm.co...

Virtono:圣何塞VPS七五折月付2.2欧元起,免费双倍内存

Virtono是一家成立于2014年的国外VPS主机商,提供VPS和服务器租用等产品,商家支持PayPal、信用卡、支付宝等国内外付款方式,可选数据中心共7个:罗马尼亚2个,美国3个(圣何塞、达拉斯、迈阿密),英国和德国各1个。目前,商家针对美国圣何塞机房VPS提供75折优惠码,同时,下单后在LET回复订单号还能获得双倍内存的升级。下面以圣何塞为例,分享几款VPS主机配置信息。Cloud VPSC...

文件句柄为你推荐
oa办公系统下载办公软件下载哪里可以下载啊?主要是公司准备搞这个东西,我先看看什么情况印度尼西亚国家代码谁知道世界各国的国家电话代码?jstz江苏泰州市地税如何申报?asp大马一句话木马中的大马和小马的作用各是什么?微软操作系统下载怎么下载官方win10 64位镜像系统labelforhtml中label是什么意思啊?kjava通用KJava是什么意思activitygroup请问在activitygroup中嵌入多个webview,切换时如何保持状态腾讯贴吧QQ应该有贴吧的吧?那怎样进QQ贴吧?在(=@__@=)哪里?电子邮件软件邮件客户端软件
如何查询域名备案号 如何注册中文域名 已经备案域名 腾讯云盘 堪萨斯服务器 asp.net主机 美国主机代购 京东商城双十一活动 阿里云浏览器 web服务器架设 帽子云 双11秒杀 tna官网 isp服务商 稳定免费空间 空间合租 电信虚拟主机 昆明蜗牛家 免费cdn 香港新世界中心 更多