作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这里阅读了几篇文章,但仍然对 setenv()
的方式感到困惑作品:
envp[]
指向这些字符串的指针,也靠近用户堆栈的底部。用户堆栈在这些字节的顶部增长,这意味着向字符串区域或指针数组添加更多内容并非易事。那么如何
setenv()
如果设置了新变量(需要向
envp[]
中添加元素),或者更改了变量但新值字符串比旧值字符串长(使就地修改不可能),则工作,而不移动(几乎)整个用户堆栈为新人腾出空间?
bash
保留本地设置变量的内部列表,当用户
export
本地设置变量,
bash
简单地将它从这个本地管理的列表中删除,并将它添加到上面提到的堆栈字符串区域的底部并将其指针插入到指针数组
envp[]
,以便其子进程自动继承导出的变量?
最佳答案
My understanding is that environment variables are stored as...
...without shifting (almost) the whole user stack to make room for newcomers?
__environ
变种
A somewhat related question is, does bash keep an internal list of locally set variables....
关于c - putenv()/setenv() 如何在不移动整个用户堆栈的情况下工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63497061/
我是一名优秀的程序员,十分优秀!