今天在CSDN里回了一个贴子,我按照理论上的栈大小可以有2G多的空间时,被另一个朋友指出我的错误,实际中栈只有2M,他指的是线程。可是在LINUX下进程和线程是没什么差别的。我就突然想起应该用一种什么方法来验证一下栈的大小,由GOOGLE帮忙,找到了后面的reference。
写一个hello, world程序
#include <stdio.h>
int main(int argc, char* argv[])
{
int buf[2*1024*1024];
printf("hello, world");
return 0;
}
buf的大小是2*1024*1024*4=8M。可以改变buf的大小,来验证栈的大小。我在的系统用的内核版本是2.4.20。在以上程序运行的时候出现了段错误。
References: http://coolq.blogdriver.com/coolq/26282.html
分享到:
相关推荐
---------------------------------------------------Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈
Linux下函数栈大小的自动计算技术.pdf
linux kernel module打印指定进程栈信息,简单说明: http://blog.csdn.net/qq123386926/article/details/50524901
基于linux系统的进程和进程环境的讲解的PPT,是读者了解什么是进程。
linux c下的多进程例子,使用共享内存进行通信,一个进程写一个进程读。
修改linux进程可打开的文件数的限制open files linux中一切都是文件 默认linux一个进程可打开1024个文件 大并发需要达到5万个文件描述符FD,你必须修改该参数值才行
操作系统实验报告,Linux环境下进程管理。 编写一段程序,使用系统调用 fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;...
linux协议栈,介绍协议栈的实现在linux中 linux协议栈,介绍协议栈的实现在linux中
一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运行。 当然,一个进程也可以主动释放CPU的控制权。函数 schedule()是一个调度函数,它...
Linux 实现双进程启动,此脚本对于Linux上一个脚本去带动另外一个脚本,最终实现双进程启动
浅析Linux环境下的进程间通信机制.pdf
TCP/IP linux 协议栈 线程 进程
Linux下一个进程在内存里有三部份的数据,就是 “数据段”,“堆栈段”和“代码段”,其实学过汇编语言的人一定知道,一般的CPU象I386,都有上述三种段寄存器,以方便操作系统的运行。“代码段”,顾名思义,就是...
为了遵循这些设计原则,不允许 Linux 内核在进程一终止后就丢弃包含在进程描述符字段中的数据。只有父进程发出了与被终止的进程相关的 wait() 类系统调用之后,才允许这样做。这就是引入僵死状态的原因:尽管从技术...
Linux环境进程间通信(一) 3 Linux环境进程间通信(二): 信号(上) 19 Linux环境进程间通信(二): 信号(下) 30 Linux环境进程间通信(三) 40 Linux环境进程间通信(四) 52 Linux环境进程间通信(五): 共享...
Linux环境进程间通信.pdf Linux环境进程间通信.pdf
理解Linux环境下SYSTEM V进程间通信.pdf
Linux环境进程间通信(五) 共享内存(上)
守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同, 造成不同 Unix环境下守护进程的编程规则并不一致。需要注意,照搬某些书上的规则(特别是BSD4.3和低版本的System V)到Linux会出现错误的...
注:本文所涉及的环境为Linux,下文讨论的栈跟内核栈,没有任何的关系 这里有如下几个问题,线程栈的空间是开辟在那里的? 线程栈之间可以互访吗?为什么在使用pthread_attr_setstack函数时,需要设置栈的大小,...