
Linux
Mark@北京
这个作者很懒,什么都没留下…
展开
-
可重入函数与不可重入函数
可重入函数与不可重入函数 概念 可重入函数(reentrant):在任意时刻可以被中断,稍后再继续运行,不会丢失数据,即不用担心数据被其他线程篡改。可重入函数必须满足以下三个条件: 可以在执行的过程中可以被打断; 被打断之后,在该函数一次调用执行完之前,可以再次被调用(或进入,reentered)。 再次调用执行完之后,被打断的上次调用可以继续恢复执行,并正确执行。 不可重入函数(non-reentrant):多任务调用某一不可重入函数时,可能修改其他任务调用该函数的数据,从而导致不可预料的后果。即原创 2020-05-29 11:10:42 · 989 阅读 · 1 评论 -
C程序内存分配
APUE中的一个典型C内存空间分布 名称 内容 栈 局部变量、函数参数、局部常量 堆 动态内存分配 DATA段 已初始化全局变量、已初始化全局静态变量、已初始化局部静态变量 BSS段 未初始化全局变量,未初始化全局静态变量 文字常量区 字符串常量、全局const常量 代码段 可执行代码 简介 栈(stack):存放函数的参数值、返回值、局部变量的值,以及在进行任务切换时存放当前任务的上下文内容。 堆(heap):用于动态内存分配,即使用malloc/free系列函原创 2020-05-25 20:02:38 · 315 阅读 · 0 评论