65,209
社区成员
发帖
与我相关
我的任务
分享#include<stdio.h>
#include<unistd.h>
#include<errno.h>
main()
{
void *p=sbrk(1000000000*2);
if(p == (void*)-1)
{
printf("Memory:%m\n");
perror("hello");
printf("::%s\n",strerror(errno));
}
}
我知道sbrk拓展映射范围,这只是个测试,为什么没有错误显示呢?还是说不会有内存错误?[/quote]
因为成功了啊,
ulimit -a看下你的data seg配置,如果是unlimited,改小就可以了[/quote]
你看这句p == (void*)-1成立了,应该说明sbrk()返回了-1,应该是函数出错了吧,但是显示错误的信息竟然是成功了;你误会我的意图了,我就是想让sbrk()出错,然后输出错误信息,所以不停的调整sbrk()参数的大小。最后谢谢你!
我知道sbrk拓展映射范围,这只是个测试,为什么没有错误显示呢?还是说不会有内存错误?[/quote]
因为成功了啊,
ulimit -a看下你的data seg配置,如果是unlimited,改小就可以了