Windows 上的端口 getrlimits/setrlimit

2024-02-02

我正在寻找一种在 Windows 上移植 POSIX getrlimits/setrlimit 功能的方法。

我们的应用程序有时会遇到非常深的递归,并且达到默认堆栈限制,导致堆栈溢出。

为了防止这种情况,我们编写了以下代码:

struct rlimit rl;
int error = getrlimit(RLIMIT_STACK, &rl);
if (!error) 
{
  rl.rlim_cur = rl.rlim_max;
  error = setrlimit(RLIMIT_STACK, &rl);
}

基本上我们在这里将堆栈限制设置为最大值。

现在我尝试使用 minGW 将此代码移植到 Windows(在 Linux 上为 Windows 进行交叉编译)

我四处搜索,但找不到从代码中执行此操作的方法。

我发现的是一个链接器标志“--stack”,可以用作:

mingw32-g++ -Wl,--stack, -o file.exe file.c

但我不确定长期运行时是否会遇到这种用法的一些问题(例如为整个应用程序设置堆栈限制与为特定代码段设置堆栈限制)

与此解决方案相比,我更喜欢以下解决方案之一:

  1. 一种独立于平台的方式来设置堆栈限制或
  2. 一种从代码内设置 Window 堆栈限制的方法。

None

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

Windows 上的端口 getrlimits/setrlimit 的相关文章

  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • 从客户端访问 DomainService 中的自定义对象

    我正在使用域服务从 Silverlight 客户端的数据库中获取数据 在DomainService1 cs中 我添加了以下内容 EnableClientAccess public class Product public int produ
  • 对 std::vector 进行排序但忽略某个数字

    我有一个std vector
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • 打印大型 WPF 用户控件

    我有一个巨大的数据 我想使用 WPF 打印 我发现WPF提供了一个PrintDialog PrintVisual用于打印派生的任何 WPF 控件的方法Visual class PrintVisual只会打印一页 因此我需要缩放控件以适合页面
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • GCC 的“-Wl,option”和“-Xlinker option”语法之间有区别吗?

    我一直在查看一些配置文件 并且看到它们都被使用 尽管在不同的体系结构上 如果您在 Linux 机器上使用 GCC 将选项传递给链接器的两种语法之间有区别吗 据我所知 阅读 GCC 手册时 他们的解释几乎相同 From man gcc Xli
  • 我可以在“字节数”设置为零的情况下调用 memcpy() 和 memmove() 吗?

    当我实际上没有什么可以移动 复制的时候 我是否需要处理这些情况memmove memcpy 作为边缘情况 int numberOfBytes if numberOfBytes 0 memmove dest source numberOfBy
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string

随机推荐

  • 元素上的 jQuery Change 事件 - 有什么方法可以保留以前的值吗?

    今天早上我一直在搜索 但没有找到任何简单的解决方案 基本上 我想捕获输入元素的变化 但也知道以前的值 这是最简单形式的更改事件和输入元素 显然 我可以使用 elem val 获取新值 但是我是否缺少一种获取先前值的偷偷摸摸的方法 我在 jQ
  • 在.Net Core中创建自定义Sdk

    在 Net core项目中 有一个 csproj文件 其中第一行指定您在该项目中定位的 SDK 类似于
  • 简单检查 Twig 模板中的表单字段是否有错误

    在 Twig 模板中 我检查字段是否有如下错误 if form points get errors is not empty 有没有类似的方法 if form points hasErrors 做起来更简单吗 这没什么大区别 但如果我不能做
  • 根据嵌入式 VB.NET 资源的路径自动添加命名空间

    我习惯于在 C 中嵌入资源 并且喜欢它自动向嵌入资源添加命名空间的方式 这允许我做这样的事情 files version1 config xml files version2 config xml files version2 config
  • 在查询中传递字符串而不使用引号 ''

    我有这个查询代码 conditions array codiceBiblio IN gt tot 其中 tot 是一个字符串 例如 2345 5657 4565 5678 在这种情况下 查询将是 SELECT WHERE codiceBib
  • Django 迁移和可定制的可重用应用程序

    大约三周前 我开始编写我的第一个可重用应用程序 但我在处理迁移方面遇到了麻烦 我希望我的应用程序的某些点是可定制的 因此我有一个conf子模块 https github com Aladom django mailing blob 6260
  • 如何回显 DOMNodeList 对象和 DOMElement 对象?

    我正在使用循环来填充名为 list 的数组 它就像一个魅力 content is a DOMNodeList Object value is a DOMElement Object list array foreach content as
  • 导入 io.restassured.RestAssured 无法解析

    您好 我在使用放心 4 1 1 时无法解决该错误 我的 Eclipse IDE 中的库 我已在 pom xml 文件中添加了放心库 但错误仍未解决 我尝试重新导入放心的库https mvnrepository com artifact io
  • 使用 GNU gfortran 字符串化宏

    如何使用 GNU gfortran 字符串化预处理器宏 我想将宏定义传递给 GNU gfortran 然后将其用作代码中的字符串 实际上我想这样做 program test implicit none character len alloc
  • 在 Java 中如何检查 Socket 当前是否已连接? [复制]

    这个问题在这里已经有答案了 我试图找出 Java TCP 套接字是否是现在已连接 以下内容似乎只是告诉我套接字是否已在某个时刻连接 而不是当前是否仍处于连接状态 socket isConnected 任何帮助表示赞赏 谢谢 假设您对协议有一
  • 使用 Java 8 将 int 数组转换为 long 数组?

    我尝试了几种方法都没有成功 this tileUpdateTimes is long and other tileUpdateTimes is int this tileUpdateTimes Arrays stream other til
  • gem 原生扩展到底是什么?

    我觉得本机扩展就像库一样 您应该在尝试安装这些依赖于本机扩展的 gem 之前将其安装到系统上 像ImageMagic图书馆 那是对的吗 关于本机扩展 我们还应该了解什么吗 gem 本机扩展might链接到需要预安装的单独库 以及RMagic
  • MongoDB C# 驱动程序:查询拦截器?

    MongoDB C 驱动程序是否支持像实体框架这样的查询拦截器 我检查了文档但找不到任何内容 基本上我需要做的是确保对数据库的某些查询 根据上下文 始终应用某些限制 例如 如果我的文档可以被软删除 那么我总是需要确保为 Soft Delet
  • 动态设置每个记录器实例的 Nlog 日志级别 ASP.Net Core 2.x

    客观的 动态选择我想要详细日志记录的 HTTP 请求 不同的日志级别 Overview 我有一个正在运行的 ASP Net core 2 1 Web 服务器 一旦投入生产 如果我需要调试问题 我希望能够更改日志级别 我已经找到了如何全局更改
  • 使用 urllib2 进行代理

    我打开网址 site urllib2 urlopen http google com 我想做的是用代理以相同的方式连接 我有一个地方告诉我 site urllib2 urlopen http google com proxies http
  • Videomixer 在源上失败,而不是在 Videotestsrc 上失败

    我想在一个视频文件中同时播放两个不同的本地视频文件 窗户 下面的代码在没有解复用器和解码器的情况下工作正常 static void play video GMainLoop loop GstElement pipeline videomix
  • 如何检查方法是否始终返回值

    我写了一个编译器 它已经可以正常工作了 它检查所有非 void 方法是否至少有一个 return 语句 但它不检查非 void 方法中的所有代码路径是否都返回一个值 因此 例如 如果我有以下代码 int function bool a if
  • 使用 ObserveOnDispatcher 进行单元测试

    我的视图模型中有一些代码如下 miService GetSomething par1 par2 ObserveOnDispatcher Subscribe dt gt DoSomething dt 然后在我的测试中 我 嘲笑 我的服务如下
  • 如何在离线模式下使用 SBT 进行构建

    相当于什么mvn o在SBT 当我检查我的 ivy 存储库时 我可以看到依赖项 jarcache groupId artifactId jars 当我尝试在没有互联网连接的情况下构建它时 它仍然会这样做Resolving 事情并显示未解决的
  • Windows 上的端口 getrlimits/setrlimit

    我正在寻找一种在 Windows 上移植 POSIX getrlimits setrlimit 功能的方法 我们的应用程序有时会遇到非常深的递归 并且达到默认堆栈限制 导致堆栈溢出 为了防止这种情况 我们编写了以下代码 struct rli