社区首页 >问答首页 >从刚刚由std::ofstream创建和编写的文件中读取文件时是否存在任何问题?

从刚刚由std::ofstream创建和编写的文件中读取文件时是否存在任何问题?
EN

Stack Overflow用户
提问于 2022-08-24 23:46:50
回答 1查看 52关注 0票数 0

对于下面的代码片段,当std::fstream被销毁时,文件是否保证在\之后写入磁盘?

代码语言:javascript
代码运行次数:0
复制
//the writer
#include<iostream>
#include<fstream>
#include<chrono>
#include<thread>
using namespace std;
int main(int argc,char* argv[]){
    
    {
        std::ofstream file_writer{"test.txt"};

        file_writer << "when the file is actually written out?" << std::endl;
    }


    std::this_thread::sleep_for(std::chrono::seconds(3600));  //the reader below would be called and this process is still alive.  
    return 0;
}

保证首先调用代码段。

由于操作系统可能会推迟实际操作(这是C++无法控制的),现在可能在磁盘上没有实际文件。我不确定是否存在潜在的问题,如果我调用下面的代码片段来读取由第一个代码片段销毁后创建和编写的文件,那么file_writer就会被销毁。

代码语言:javascript
代码运行次数:0
复制
//the reader
#include<iostream>
#include<fstream>
using namespace std;
int main(int argc,char* argv[]){
    
    {
        std::ifstream file_reader{"test.txt"};

        file_reader.read();
    }
    
    return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2022-08-24 23:52:03

您可以使用输出流创建文件,该文件通常是同步的。

然后,将输出流写到文件,这通常是通过页面缓存进行的。

因此,在运行第一个程序之后,该文件就可以读取数据和存在性了。

问题更深一点,因为您假设程序的运行顺序,在100%的情况下,这要求您在外部同步(通过PID文件或信号量)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73483711

复制
相关文章
[Go] 写文件和判断文件是否存在
OpenFile得到一个File,然后调用它的Write,参数是字节切片 Stat看看返回错误没有
唯一Chat
2019/11/22
4.2K0
PathFileExists 文件目录是否存在
大家好,又见面了,我是你们的朋友全栈君。if(!PathFileExists(_T(“d:\\test”)))
全栈程序员站长
2022/09/14
1.7K0
php判断文件是否存在
最近博客需要这么个功能,最初是想用file_exists()来判断本地文件的,奈何地址那里我填的是“http://zezeshe.com/usr/themes/Themia/img/sj/85.jpg”这货,因为我的错误填写,让我以为是主机的毛病,于是改用 fopen()方法,这个在我的韩国主机上没有问题,可我博客在的中国香港主机却死活不好使,问了客服说是@ 这个符号会消灭所有返回,建议我用CURL 方法,还没等我开始用,客服又说了:你不会是想判断本地文件吧? 我的回答当然是肯定的了。客服又说用file_exists()方法即可,然后我就把我错误的写法发了过去,质疑,然后客服就告诉了我问题所在。
泽泽社长
2023/04/17
5.3K0
golang 判断文件/路径是否存在、是否为文件夹/文件
golang判断文件或文件夹是否存在的方法为使用os.Stat()函数返回的错误值进行判断:
IT工作者
2022/07/01
2.9K0
Hadoop Shell中判断HDFS文件是否存在
Hadoop提供了-test命令可以验证文件目录是否存在。我们首先看一下-test命令的使用用法:
smartsi
2019/08/07
5K0
python 判断文件、文件夹是否存在
>>> import os >>> os.path.exists('d:/assist') True >>> os.path.exists('d:/assist/getTeacherList.py') True >>> os.path.isfile('d:/assist') False >>> os.path.isfile('d:/assist/getTeacherList.py') True >>> os.makedirs('d:/assist/set') >>> os.path.exists('d:/a
代码伴一生
2021/11/01
2.1K0
python 判断文件、文件夹是否存在
>>> import os >>> os.path.exists('d:/assist') True >>> os.path.exists('d:/assist/getTeacherList.py') True >>> os.path.isfile('d:/assist') False >>> os.path.isfile('d:/assist/getTeacherList.py') True >>> os.makedirs('d:/assist/set') >>> os.path.exists('d:/
艳艳代码杂货店
2021/11/01
2.3K0
VBA 文件复制,并判断文件是否存在,存在则报错!
Function 复制文件(ByVal 旧文件路径 As String, ByVal 旧文件名 As String, ByVal 新文件路径 As String, ByVal 新文件名 As String)
办公魔盒
2019/07/22
2.8K0
VBA 文件复制,并判断文件是否存在,存在则报错!
VBA 文件移动和判断文件是否存在
Function 文件移动(ByVal 旧文件路径 As String, ByVal 旧文件名 As String, ByVal 新文件路径 As String, ByVal 新文件名 As String)
办公魔盒
2019/07/22
2.1K0
VBA 文件移动和判断文件是否存在
知识分享之Golang——基于Golang的文件夹是否存在、文件是否存在函数
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。
cn華少
2022/06/08
1.2K0
Java 读取文件,判断文件是否还是传输
一写代码就开心
2023/09/27
1680
pyspark之从HDFS上读取文件、从本地读取文件
hdfs上的路径: path="hdfs:///主机名:端口号/地址" 本地上的路径: path"file:///本地地址" 读取文件: rdd=sc.textFile(path)
西西嘛呦
2020/08/26
5.1K0
Python Numpy 从文件中读取数据
测试文件内容(test1.txt) hello,123,nihao 8,9,10 io,he,no 测试代码 import numpy # dtype:默认读取数据类型,delimiter:分隔符 world_alcohol = numpy.genfromtxt("test1.txt", dtype=str, delimiter=",") # 数据结构 print(type(world_alcohol)) # 数据内容 print(world_alcohol) # 帮助文档 print(help(nump
山海散人
2021/03/03
4.2K0
ExcelVBA判断文件或文件夹是否存在
返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。
哆哆Excel
2022/10/25
6.6K0
ExcelVBA判断文件或文件夹是否存在
VC++ 判断文件是否存在
使用GetFileAttributes函数获取文件属性 INVALID_FILE_ATTRIBUTES 执行失败 FILE_ATTRIBUTE_DIRECTORY 文件夹类型
ClearSeve
2022/02/11
3.9K0
Python: 判断文件/目录是否存在
文章背景: 在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件/目录是否存在。下面介绍两种方法。
Exploring
2022/09/20
6.7K0
golang判断文件或文件夹是否存在
golang判断文件或文件夹是否存在的方法为使用os.Stat()函数返回的错误值进行判断: 如果返回的错误为nil,说明文件或文件夹存在 如果返回的错误类型使用os.IsNotExist()判断为true,说明文件或文件夹不存在 如果返回的错误为其它类型,则不确定是否在存在 func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil {
李海彬
2018/03/19
5.7K0
C# 判断文件/文件夹 是否存在
1、判断文件夹是否存在 //spath:文件夹路径名 using System.IO; if (Directory.Exists(spath)) { } else { DirectoryInfo directoryInfo = new DirectoryInfo(spath); directoryInfo.Create(); } 2、判断文件是否存在 // filePath 文件路径名 if (!File.Exists(filePath)) { //Messa
用户10325771
2023/03/01
1.6K0
python判断linux中文件是否存在_Python判断文件是否存在的三种方法
通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。
全栈程序员站长
2022/09/07
4.2K0
点击加载更多

相似问题

逐行读取std::ofstream (但不是从文件中读取)

11

std::ofstream,在写入之前检查文件是否存在

66

std::ofstream追加文件

23

如何从std::ofstream获取文件id

11

std::ofstream上的空文件检查

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档