c - “静态区域”是什么意思?
问题描述
中的“静态区域”是什么意思man GETPWNAM(3)
?
返回值可能指向一个静态区域,并且可能被后续调用 getpwent(3)、getpwnam() 或 getpwuid() 覆盖。(不要将返回的指针传递给 free(3)。)
这可能是一个非常微不足道的问题,但我很好奇。
解决方案
这意味着基本上有一个全局变量,其内存由所有提到的函数共享,并且所有这些函数都返回一个指向该共享变量的指针。
所以如果你这样做
struct passwd *pwd1 = getpwnam("foo");
struct passwd *pwd2 = getpwnam("bar");
那么有可能,pwd1 == pwd2
第二次调用getpwnam
覆盖了第一次调用收集的结构中的数据。
推荐阅读
- react-native - TypeError: undefined is not a function (near '...this.state.categories.map...')
- assembly - 如何从 main() 返回大于 8 位的数字?
- sql - 按模糊条件分组
- android - Android findPreference() 坏了
- snowflake-cloud-data-platform - Snowflake 中的流:捕获一行的所有更改,而不仅仅是当前的净更改?
- python - 如何从提供的 TensorFlow 模型中获取元数据?
- ios - 在 Swift 中从 UITableViewCell 到 UIWebView
- git - git 文件夹在本地列出,但不在远程分支上
- highcharts - 当同一页面上有多个图表时,如何使用向上钻取更新 HighCharts 标题?
- python - pytorch 模型在第一轮后返回 NAN