使用 ulimit 命令调整堆栈大小,并编写代码测试在栈 上可分配内存的大小(分别为溢出和不溢出)
时间: 2024-05-09 19:21:39 浏览: 172
使用 ulimit 命令调整堆栈大小:
1. 查看当前堆栈大小限制:ulimit -s
2. 修改堆栈大小限制:ulimit -s <size> (size 为新的堆栈大小,单位 kb)
编写测试代码:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 1048576
int main() {
int stack_array[MAX_SIZE];
int i;
for (i = 0; i < MAX_SIZE; i++) {
stack_array[i] = i;
}
printf("Test passed!\n");
return 0;
}
```
测试在栈上可分配内存的大小(分别为溢出和不溢出):
1. 不溢出:ulimit -s 8192 (设置堆栈大小为 8MB)
执行程序,输出 "Test passed!",表明在栈上可以分配 1MB 的空间。
2. 溢出:ulimit -s 1024 (设置堆栈大小为 1MB)
执行程序,会发生 Segmentation fault 错误,表明在栈上无法分配 1MB 的空间。
阅读全文