首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个进程的setenv?

每个进程的setenv?
EN

Stack Overflow用户
提问于 2012-02-02 06:54:54
回答 3查看 2.2K关注 0票数 0

我使用setenv动态访问文件名,如下所示:

代码语言:javascript
复制
setenv("file.name",filename.c_str,1);

我很好奇这是不是按进程进行的?

如果我有多个进程运行这段代码,但是使用不同的文件名,会有冲突吗?

假设我有进程1

代码语言:javascript
复制
setenv("file.name",filename1.c_str,1);  

和进程2

代码语言:javascript
复制
setenv("file.name",filename1.c_str,1);  

这样做会有什么问题吗?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-02 07:13:02

您使用setenv()设置的环境是按进程设置的。本质上,它只是进程中的一个内存区。至少,这是在UNIX系统上执行的操作。与getenv()不同,它既不是C标准的一部分,也不是C++标准的一部分,但它是POSIX的一部分。它在非POSIX系统上所做的事情,如果存在的话,可能会有所不同。

票数 3
EN

Stack Overflow用户

发布于 2012-02-02 07:10:55

环境变量是特定于平台的。我认为setenv()不适用于Windows,所以假设您谈论的是一个运行在Linux上的程序,那么您应该没问题。setenv()设置具有进程作用域的环境变量(当然,在派生的线程之间共享)。

票数 0
EN

Stack Overflow用户

发布于 2012-02-02 07:12:49

据我所知,在所有现代操作系统上,每个进程都有一个独立的环境块,它通常是在创建进程时构造的。(例如,在Windows系统上的NtCreateProcess()期间)或用于Linux/Unix/Other的等价物。_putenv()可以在Windows上运行,而setenv()可以在Linux/Unix上运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9104610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档