gpt4 book ai didi

c - SCSI 通用 write() 线程安全吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:57 28 4
gpt4 key购买 nike

我有一个应用程序可以同时执行 SCSI READ10 和 WRITE10 操作。当他们到达我的代码的较低级别时,他们调用 write(),然后调用/dev/sgXX 上的 read()。不过,我在接收我的应用程序命令的设备上得到了非常奇怪的结果,而且它们偶尔会发生。这种低级同步 write()/read() 安全吗?或者我是否可能正在将数据传输到 HBA?

最佳答案

根据定义,读写应该是安全的,但是:

1)读写,是否发生在同一个文件描述符上。否则,您系统中打开的文件表可能有多个偏移量,导致数据读写不一致。

2) 如果你有一个数据 block 必须写入你的磁盘,你是否在 for 循环中使用 write?这是不安全的,因为在两次写入调用之间可以启动其他读取或写入操作。查看 readv 和 writev 以原子方式写入大数据 block 。

关于c - SCSI 通用 write() 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17045665/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com