我正在编写一个C程序,并且通过分段错误超过了递归限制。有没有办法增加程序的递归限制(可能通过增加堆栈大小),通过GCC选项或通过命令行选项?该计划在Ubunutu上运行。
答案 0 :(得分:5)
答案 1 :(得分:2)
堆栈大小是操作系统的一个功能,虽然许多早期的操作系统(例如MSDOS)没有进行程序堆栈段控制:由程序来保留足够大小的段。
使用虚拟内存和32位API,堆栈大小通常由资源管理机制提供。例如,在Linux上,ulimit
命令提供了一个堆栈大小控制源。其他级别的控制由内核实施系统策略,内存限制和其他限制内的机制提供。