gpt4 book ai didi

C++17 文件系统调用产生段错误

转载 作者:行者123 更新时间:2023-11-30 01:02:08 24 4
gpt4 key购买 nike

基于对 Size of file using C++17 的回复,我写了下面的程序。但是,当可执行文件运行时,出现段错误。我在运行 High Sierra 的 iMac 上使用 g++ 8.3.0。

// c17filesize.cpp
// Jul-02-2019

#include <cstring>
#include <filesystem>
using namespace std;

int main(int argc, char **argv)
{
char filename[100];
(argc > 1) ? strcpy(filename, argv[1]) : strcpy(filename, __FILE__);
auto size = filesystem::file_size(filename);
}

最佳答案

  1. 比 C 风格的字符串更喜欢使用字符串(及其构造器)。
  2. 根据https://en.cppreference.com/w/cpp/filesystem/file_size您必须指定完整路径。您是否验证 argv[1] 包含完整路径?
  3. 在尝试读取其大小之前检查文件是否存在 std::filesystem::exists(filename);

  4. 使用 try 和 catch 部分来捕获异常。

关于C++17 文件系统调用产生段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56845734/

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