流线程安全吗?

编程入门 行业动态 更新时间:2024-10-23 02:05:29
本文介绍了流线程安全吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在使用一个程序,它使用多个 std :: ifstream s来读取二进制文件,一个 std :: ifstream 为每个线程。现在我需要知道,如果 std :: ofstream 在Windows和Linux上是线程安全的,用于在同一个文件中写入。我使用只使用一个 std :: ofstream 和使用多个线程。 我使用每个线程读取不同的块,并写这些块输出文件使用 seekp()和 write()。目前它是为我工作,但它是否有问题的大文件。

I am working on a program, which uses multiple std::ifstreams for reading a binary file, one std::ifstream for each thread. Now I need to know, if std::ofstream is thread-safe on Windows and Linux for writing in a same file. I am using using only one std::ofstream and using for multiple threads. I am reading different blocks using using each thread and writing those block in output file using seekp() and write(). Currently it is working for me but whether it is problematic for big files.

是 std :: ofstream 线程安全吗?

推荐答案

从 C ++标准(输入/输出库线程安全):

From C++ standards (Input/Output Library Thread Safety):

27.1.3线程安全[iostreams.thread-safety]

27.1.3 Thread safety [iostreams.thread-safety]

并行访问流对象[string.streams,file.streams],流缓冲对象 [stream.buffers]或C库流[c .files]多个线程可能导致数据 race [intro.multithread],除非另有规定[iostream.objects]。 [注意:数据库会导致未定义的行为[intro.multithread]。

Concurrent access to a stream object [string.streams, file.streams], stream buffer object [stream.buffers], or C Library stream [c.files] by multiple threads may result in a data race [intro.multithread] unless otherwise specified [iostream.objects]. [Note: Data races result in undefined behavior [intro.multithread].

更多推荐

流线程安全吗?

本文发布于:2023-11-25 18:55:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1630933.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:程安全

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!