- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我这里有一些(遗留)代码,似乎在LD_LIBRARY_PATH
上调用setenv
(其值在编译时未知,实际上它将从命令中获取)行),现在我必须将其移植到 Windows。我怀疑 setenv
只是出于历史原因而完成的,它不再具有实际效果,我想确认这一点。
因此,我的方法是检查环境的所有用途,看看是否有任何用途会受到 LD_LIBRARY_PATH
(或任何其他)的影响。因此,我认为除非调用 environ
变量或某些函数,否则代码将对环境不敏感(直接、间接或在后续代码中)。
我确定的(候选)职能是:
getenv
执行*
打开
系统
dlopen
和 friend TZ
变量的时间函数包含 getenv
的原因很明显,因为后续代码可能取决于环境变量的值。包含 exec*
、popen
和 system
是因为首先(子)程序的链接可能会受到环境的影响,而且 (子)程序本身可能依赖于环境,dlopen
我认为会在LD_LIBRARY_PATH
中搜索库(这里链接库本身也可能在初始化期间访问环境或稍后)。其余的原因是我知道标准库中的很多地方都使用了 TZ
和语言环境。
我是否错过了某些功能或代码可能依赖于环境的其他情况?当然,我意识到这受到加载的库的影响,但据我所知,只有加载的“标准”库加上 libsqlite3
(加上 libpthread
,libdl
和 libm
)。我猜想 SQLite3 可能对某些环境变量敏感,但是 LD_LIBRARY_PATH
是其中之一吗?
郑重声明,这次程序似乎不包含 exec*
或 dlopen
,但我包含它们,因为在另一种情况下它们可能会包含在内。
最佳答案
您应该检查每个函数的文档。那是dlopen
明确指出它使用LD_LIBRARY_PATH
作为搜索列表来查找共享库。
当您在任何情况下都可以将路径指定为 dlopen
的参数时,强制加载特定库似乎是一种相当笨拙的方法。
除此之外,它是 GNU 链接器 ld
用于定位静态库的值。因此,不太可能但有可能的是,它被您的应用程序使用,因为它启动了链接器或其他使用 dlopen 的进程,它可以通过 exec 执行,例如,popen
或 system
。鉴于您的代码具有所有这些功能,很明显正在启动一些外部进程。
关于c - 哪些代码可能对环境(变量)敏感?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34430558/
我这里有一些(遗留)代码,似乎在LD_LIBRARY_PATH上调用setenv(其值在编译时未知,实际上它将从命令中获取)行),现在我必须将其移植到 Windows。我怀疑 setenv 只是出于历
我在 SSIS 包上有一个敏感字符串参数,用于存储远程服务器的密码。 但是,当字符串值包含花括号时,作业代理会在配置该步骤的包参数时抛出错误: Microsoft SQL Server Managem
我们都非常了解 strictfp 的工作原理。 像这样: package com.hk.basicjava.tests.strictfp; import java.util.*; public cla
我正在对我的博客进行简单搜索。我使用亚美尼亚语,当我搜索时,这些字母总是很敏感。这是我的代码的一部分。提前谢谢你。 search_query = get.get('search') query_lis
我正在对我的博客进行简单搜索。我使用亚美尼亚语,当我搜索时,这些字母总是很敏感。这是我的代码的一部分。提前谢谢你。 search_query = get.get('search') query_lis
想象一下这个非常基本的可拖放设置: #dropArea 是可放置的。 #itemBox > .item 是可拖动对象。 由于某种原因,droppable
我有这样的网址: http://quickstart.local/public/category1/product2 并且在 url (category1/product2) 数字是 id ,从数据库
我是一名优秀的程序员,十分优秀!