C++多线程操作文件遇到的问题!
对于一个文件是否可以有多个文件句柄?在读和写时是否有区别?对于每个句柄是否对应一个文件指针,还是一个文件只有一个文件指针?...
对于一个文件是否可以有多个文件句柄?在读和写时是否有区别?对于每个句柄是否对应一个文件指针,还是一个文件只有一个文件指针?
展开
2个回答
展开全部
文件指针有几种种类型
1)C的文件指针 FILE* 这个不是文件读写位置的指针,是FILE数据结构的指针
2)文件系统的文件指针
3)iostream 的流指针
分三种情况ifstream,iofstream,ofstream,
ifstream,一个读指针,ofstream一个写指针,iofstream一个读指针,一个写指针
不知两者之间有何关系。
文件句柄是Windows 的文件系统,每个打开的文件句柄有一个指针,指明当前的读写位置。
异步方式读写打开时,当读写的区域不同时,可以多线程同时读写,用,CreateFile,ReadFileEx,WriteFileEx,CloseHandle。这时,文件指针不起作用,在函数参数里指定读写位置。CreateFile打开时要指定异步方式读写。
内存映射写时,要同一数据块建两个映射,一个写入实际数据,一个拷贝数据(实现写时拷贝,把数据写入文件)
1)C的文件指针 FILE* 这个不是文件读写位置的指针,是FILE数据结构的指针
2)文件系统的文件指针
3)iostream 的流指针
分三种情况ifstream,iofstream,ofstream,
ifstream,一个读指针,ofstream一个写指针,iofstream一个读指针,一个写指针
不知两者之间有何关系。
文件句柄是Windows 的文件系统,每个打开的文件句柄有一个指针,指明当前的读写位置。
异步方式读写打开时,当读写的区域不同时,可以多线程同时读写,用,CreateFile,ReadFileEx,WriteFileEx,CloseHandle。这时,文件指针不起作用,在函数参数里指定读写位置。CreateFile打开时要指定异步方式读写。
内存映射写时,要同一数据块建两个映射,一个写入实际数据,一个拷贝数据(实现写时拷贝,把数据写入文件)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询