fseek和fread单独使用线程安全,合在一起需要用线程安全机制

本文探讨了fseek和fread函数在不同情况下的线程安全性。单独使用时,这两个函数都是线程安全的;但在fseek后紧跟fread的操作中,可能受到其他线程的影响,因此建议在这种情况下使用临界区来保护这段代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

翻译整理自:http://social.msdn.microsoft.com/Forums/vstudio/en-US/ce7799c2-52e0-4b14-b59b-30357ccb3db2/file-seek-then-read-threadsafety?forum=vcgeneral

1、fseek和fread单独使用线程安全

fseek: "This function locks out other threads during execution and is therefore thread-safe."

http://msdn2.microsoft.com/en-us/library/75yw9bf3(VS.80).aspx

 

fread: "This function locks out other threads."

http://msdn2.microsoft.com/en-us/library/kt0etdcs(vs.80).aspx


2、fseek和fread联合使用需要加锁或者采用临界区


Another seek can come in between a seek-then-read operation and will need a critical section for it.

It sounds like I'll need to create a windows equivalent of pread:

int pread(handle, location, size, data*)
{
    enter critical section
    seek
    read
    leave critical section
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值