如何强制 boost 以 root 身份运行时抛出 boost::filesystem::filesystem_error ?

问题描述 投票:0回答:1

我有一些代码可以在某些(难以重现)情况下引发 boost::filesystem::filesystem_error 异常。

我设置了异常处理程序,我想测试异常处理程序的正确行为。

如果我不是以 root 身份运行,我可以通过在无法访问的目录中打开文件来强制这些异常。

但是,我们的构建管道以 root 身份运行测试(无论好坏),在这种情况下,权限检查将被绕过,并且不会引发异常。

当代码以 root 身份运行时,如何强制 boost::filesystem 抛出异常?

c++ linux exception boost
1个回答
0
投票

这与其说是关于 boost 或 C++ 的问题,不如说是……

这取决于您的代码在做什么。如果您要打开现有文件,但不创建它(因为它是需要存在的数据文件,而不是缓存文件或其他文件),则可以不存在它。

如果您创建的文件不存在,但不在其所在的目录中,请删除该目录。

如果您要创建文件和目录,只需创建一个具有目录名称的文件即可 - 大多数软件不会删除该文件来为目录腾出空间,而是会失败。

等等。看看你的软件做了什么,然后找个地方搞砸了。

© www.soinside.com 2019 - 2024. All rights reserved.