- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
C 标准说:
The getenv function returns a pointer to a string associated with the matched list member. The string pointed to shall not be modified by the program, but may be overwritten by a subsequent call to the getenv function.
据我所知,glibc 中的 getenv 实现(我使用的是版本 2.17)从名为 char **environ 的全局变量返回元素。对 getenv 函数的每次后续调用仍会返回此数组中的一个元素(如果此类环境变量不存在,则返回 null),而不会更改任何先前返回的值。
在使用 glibc 时,是否可以通过后续调用 getenv 函数来更改先前由 getenv 函数返回的指针的内容?如果是,什么时候?
最佳答案
这实际上只是标准中的一个错误。即使 C11 保留了允许覆盖缓冲区的语言,但与此同时,它不允许与对 getenv
的其他调用进行数据竞争,只能与修改环境的(实现定义的)函数进行数据竞争,所以允许这种覆盖发生似乎是矛盾的。
在所有现实世界的实现中,包括 glibc,getenv
返回指向环境内部表示中字符串副本的指针,并且永远不会失效,除非您调用以下函数修改环境。
关于c - 使用 glibc 时 getenv 何时可以更改先前返回的指针的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19745648/
我的应用将 SceneKit 内容的“页面”与图像和文本交替。当我从图像页面前进到新的 SceneKit 页面时,前一个 SceneKit 页面中的内容会短暂显示,然后被新内容替换。时髦。 我只使用一
我正在尝试处理(在 C# 中)包含一些数字数据的大型数据文件。给定一个整数数组,如何对其进行拆分/分组,以便如果下一个 n(两个或更多)是负数,则前一个 n 元素被分组。例如,在下面的数组中,应该使用
刚接触promises,研究过。所以我的代码和我的理解: sql.connect(config).then(function(connection) { return connection.req
目前我在 if (roobaf) block 中有一些代码,这取决于 foo 和 bar 是否为假。我可以在 block 内再次检查这些条件,但感觉像是不必要的代码重复。 if (foo) {
我是一名优秀的程序员,十分优秀!