当权限被拒绝时 std::ofstream 不显示错误 C++

2024-01-23

当 path = "c:\" 时,以下代码不会写入文件 c:\err.txt,因为权限被拒绝。但它不会同时产生错误。相反,它输出“OK”。

如何检查权限是否允许写入?

#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

bool writeLineToErr(string path, string err_line){
  std::ofstream outfile(path+"err.txt", std::ios_base::app);

  if(!outfile){
      cout<<"Error 1 "+path+"err.txt"+" can't open file!";
      return false;
  }

  if(outfile.fail()){
       cout<<"Error 2 "+path+"err.txt"+" can't open file!";
      return false;
  }
  outfile << err_line << endl;

  cout<<"OK";
  outfile.close();
  return true;
}

int main(int argc, char** argv) {

    writeLineToErr("c:\\","Some Line");
    return 0;
}

我想说你的代码可以工作并且写入操作实际上已经完成,但为了它,在写入后也添加一个检查:

outfile << err_line << endl;
if(outfile.fail()) cout << "Error3\n";
else cout<<"OK";

在我的系统上,我会得到你的Error 1 ... can't open file如果文件未打开并成功写入。

Edit:或者您正在运行 WindowsCompatibility Files虚拟化还活跃吗?如果是这样,该文件可能位于虚拟商店,不是真实的C:\err.txt path.

例子:C:\Users\username\AppData\Local\VirtualStore

如果你在那里找到它,你可能还会在那里找到很多其他东西。至少几年前当我遇到类似问题时我是这样做的。我决定手动移动(使用管理员权限)我的一些旧程序放在那里的几个重要文件,然后关闭虚拟商店。我找不到一个好的、简单的 Microsoft 官方链接来了解如何关闭文件和注册表虚拟化现在也许这会做:

注册表编辑:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\创建一个DWORD带有名字的钥匙EnableVirtualization并赋予它值0。如果密钥已经存在,但设置为非零的值,请更改它。

这里还有更多:UAC组策略设置和注册表项设置 https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd835564(v=ws.10)#BKMK_Virtualize

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当权限被拒绝时 std::ofstream 不显示错误 C++ 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 以编程方式在java的resources/source文件夹中创建文件?

    我有两个资源文件夹 src 这是我的 java 文件 资源 这是我的资源文件 图像 properties 组织在文件夹 包 中 有没有办法以编程方式在该资源文件夹中添加另一个 properties 文件 我尝试过这样的事情 public s
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • DrawingManager.setDrawingMode(null) 导致过多的递归

    请看看这个小提琴 http jsfiddle net HoffZ Zu55b http jsfiddle net HoffZ Zu55b 为什么它会导致错误 太多递归 drawMan setDrawingMode null drawMan
  • LocationManager 每分钟更新一次,消​​耗大量电池电量

    我有一些类似于以下的代码 LocationManager m LocationManager context getSystemService Context LOCATION SERVICE Criteria c new Criteria
  • 简单的html dom:如何获取没有特定属性的标签

    我想获取 class 属性等于 someclass 的标签 但仅获取那些未定义属性 id 的标签 I tried以下 基于此答案 但不起作用 html gt find someclass id Note 我在用着简单的 HTML DOM 类
  • 如何比较两个数组的所有元素?

    我有两个大约 1000 行和 1000 列的大数组 我需要比较这些数组的每个元素 如果相应的元素相等 则将 1 存储在另一个数组中 我可以用 for 循环来做到这一点 但这需要很长时间 我怎样才能更快地做到这一点 给出的答案都是正确的 我只
  • WCF 服务合同中使用soapAction="" 进行多项操作?

    我需要创建一项将由第三方 回调 的服务 因此 我需要遵守他们的 WSDL 他们的 WSDL 定义了所有操作soapAction 所以我的服务也需要做同样的事情 不幸的是 我收到错误 操作A和 乙有 相同的动作 每一次操作 必须具有独特的行动
  • Keras 简单 RNN 实现

    我在尝试编译具有一个循环层的网络时发现了问题 第一层的维度似乎存在一些问题 因此我对 RNN 层在 Keras 中如何工作的理解存在一些问题 我的代码示例是 model add Dense 8 input dim 2 activation
  • 使用 rspec 和 devise sign_in env 进行集成测试

    我正在使用配置为使用omniauth facebook登录集成的设备 当拨打电话时sign in方法来自我的spec request我得到的测试 undefined method env for nil NilClass spec desc
  • Android 免费和付费,具有不同的功能

    我知道开发应用程序的免费和付费版本的最佳方法是拥有一个包含程序主要部分的库项目 然后 免费和付费项目将使用该库项目 这使得免费和付费项目拥有不同的资源 但是 我的问题是我们如何限制免费应用程序中的功能 或将其扩展为付费应用程序 例如 我的免
  • Python 2 与 3。相同的输入,不同的结果。 MD5 哈希值

    Python 3 代码 def md5hex data return hex string of md5 of the given string h MD5 new h update data encode utf 8 return b2a
  • Scala Spark - 处理层次结构数据表

    我有带有树结构的层次结构数据模型的数据表 例如 这是一个示例数据行 Id name parentId path depth 55 Canada null null 0 77 Ontario 55 55 1 100 Toronto 77 55
  • JDBC Hibernate - Mysql 连接错误

    我的 Ubuntu 11 10 桌面上有一个本地 mysql 服务器 主机名 本地主机 用户名 根 密码 root 数据库名称 CBS 我真的很困惑 因为当我使用 访问 mysql 时terminal mysql administrator
  • Highcharts:添加自定义图像按钮

    我想在高图表上添加图像按钮 到目前为止 我已经成功创建了一个图像按钮并在其上附加了一个单击事件 但问题是 图像 sun png 位于图表的左侧 图像按钮右对齐 工具栏的默认位置 有什么解决办法吗 exporting buttons popU
  • 就地处理(无重定向)401 未经授权?

    QUESTION 有什么简单的方法可以直接返回 401 并登录页面 避免 302 重定向 当IAuthorizationFilter我的 IIS 7 0 上的 ASP NET MVC 5 应用程序失败 我必须实现什么基础设施才能使其正常工作
  • 如何判断任务是否已被“观察”?

    这是后续这个问题 https stackoverflow com q 33086371 2674222 我还读过斯蒂芬 托布的 任务和未处理的异常 http blogs msdn com b pfxteam archive 2009 05
  • 在SQL中插入空白行数

    使用 SQL 查询 我需要在结果中包含空白行以使每组 family id 等于 4 行 SELECT ROW NUMBER OVER PARTITION BY family id ORDER BY family id AS rowNum f
  • 使用 jQuery 更改单击的表格行的颜色

    我需要你的帮助 我怎样才能使用 jQuery 更改表中所选行的背景颜色 对于本例 我们使用 css 类 highlighted 如果再次单击同一行 请将其更改回默认颜色 白色 选择 css 类 nonhighlighted table bo
  • unixODBC (DB2) + PHP + CentOS 的段错误

    经过两天的战斗 我尝试在这里寻求帮助 我正在使用 unixODBC 2 2 11 在 CentOS 5 4 服务器上使用 DB2 iSeries 和 PHP 5 3 我猜是因为 PHP 从 5 1 升级到 5 3 我让 PHP 在某些查询上
  • 如何使用Python加密大文件?

    我正在尝试加密大于 1GB 的文件 我不想把所有内容都读到记忆中 我选择 Fernet cryptography fernet 来完成此任务 因为它是最受推荐的 比非对称解决方案更快 我生成了密钥 然后我创建了一个脚本来加密 key Fer
  • XCTest - 在自定义坐标上使用捏合手势使用 XCUIElement 进行 UI 测试?

    假设我有一个带有 UI 的应用程序 如下图所示 我们还假设蓝色视图的行为类似于地图 其他颜色是其他可交互的视图 我需要做一个 XCTest 我需要 缩小 我厌倦的蓝色视图缩放捏 https developer apple com docum
  • 当权限被拒绝时 std::ofstream 不显示错误 C++

    当 path c 时 以下代码不会写入文件 c err txt 因为权限被拒绝 但它不会同时产生错误 相反 它输出 OK 如何检查权限是否允许写入 include