标签: setenv

关于putenv()和setenv()的问题

我一直在考虑环境变量,并有一些问题/观察.

  • putenv(char *string);

    这个电话似乎有致命的缺陷.因为它不复制传递的字符串,所以无法使用本地调用它,并且无法保证堆分配的字符串不会被覆盖或意外删除.此外(尽管我还没有测试过),因为环境变量的一个用途是将值传递给子环境,如果子进程调用其中一个exec*()函数,这似乎没用.我错了吗?

  • Linux手册页指出glibc 2.0-2.1.1放弃了上述行为并开始复制字符串,但这导致了glibc 2.1.2中修复的内存泄漏.我不清楚这个内存泄漏是什么或它是如何修复的.

  • setenv()复制字符串,但我不确切知道它是如何工作的.当进程加载但是它被修复时,将分配环境空间.这里有一些(任意?)惯例吗?例如,在env字符串指针数组中分配比当前使用的更多的插槽,并根据需要向下移动空终止指针?是否在环境本身的地址空间中分配了新的(复制的)字符串的内存,如果它太大而不适合您只需获得ENOMEM?

  • 考虑到上述问题,有什么理由,更喜欢putenv()setenv()

c unix linux environment-variables setenv

38
推荐指数
3
解决办法
2万
查看次数

如何在apache中使用setEnv变量?

我需要将我的apache环境设置为'foobar'

我知道我需要在我的虚拟主机中输入,但是我应该在那里输入什么?

apache setenv

31
推荐指数
1
解决办法
6万
查看次数

.htaccess中的条件SetEnv?

是否可以根据主机名在.htaccess文件中设置不同的SetEnv变量?

例如,我需要我的.htaccess文件具有以下值:

SetEnv PYRO_ENV production
Run Code Online (Sandbox Code Playgroud)

在生产箱上,......

SetEnv PYRO_ENV stage
Run Code Online (Sandbox Code Playgroud)

在分期盒子上.该.htaccess文件受版本控制,这就是我正在寻找条件解决方案的原因.

apache .htaccess setenv pyrocms

21
推荐指数
2
解决办法
2万
查看次数

如何导入tox中的所有环境变量

我在setenv中使用以下命令从我运行的地方导入环境变量,但有没有办法导入所有变量,这样我就不需要逐个导入了.

例如:{env:TEMPEST_CONFIG:}和{env:TEMPEST_CONFIG_DIR:}用于导入这两个变量.

[testenv:nosetests]
setenv =
    TEMPEST_CONFIG={env:TEMPEST_CONFIG:}
    TEMPEST_CONFIG_DIR={env:TEMPEST_CONFIG_DIR:}
deps = {[testenv]deps}
commands =
    find . -type f -name "*.pyc" -delete
    bash {toxinidir}/tools/setup.sh
    nosetests --with-xunit {posargs}
Run Code Online (Sandbox Code Playgroud)

python virtualenv setenv tox

21
推荐指数
1
解决办法
7531
查看次数

找不到Tomcat 7 setenv.sh

我下载并解压缩了apache-tomcat-7.0.根据RUNNING.txt(%CATALINA_BASE%/ RUNNING.txt)中的说明,它应该在"setenv.sh"文件中设置JRE_HOME.

这个文件在哪里?文档说,它将在CATALINA_HOME/bin目录中.但是这个文件不存在.

java tomcat setenv tomcat7

18
推荐指数
3
解决办法
7万
查看次数

如何使用setenv()在c ++中导出变量?

我需要导出几个变量,使它们在命令行中看起来如下所示

export ROS_HOSTNAME=xxx
Run Code Online (Sandbox Code Playgroud)

如何在c ++中使用setenv()来实现呢?

谢谢.

c++ command-line setenv

16
推荐指数
1
解决办法
5万
查看次数

在Mac上的setenv等效?

我想使用setenv设置一个环境变量:

setenv NODE_ENV localhost  
Run Code Online (Sandbox Code Playgroud)

但setenv给我一个错误,说找不到命令.有谁知道如何执行相当于setenv的MAC OSX?谢谢!

macos bash setenv

16
推荐指数
2
解决办法
3万
查看次数

.htaccess中的Zend SetEnv无法正常工作

我在我的ubuntu homeserver上安装了Zend.在我的.htaccess文件中,我有以下代码:

SetEnv APPLICATION_ENV development

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [NC,L]
Run Code Online (Sandbox Code Playgroud)

当我在公共文件夹中的index.php中回显APPLICATION_ENV时,未设置APPLICATION_ENV.

我究竟做错了什么?

在apache中启用了Mod重写.

php .htaccess zend-framework setenv

11
推荐指数
3
解决办法
1万
查看次数

mod_rewrite规则和setenv

反正是有使用在设定值SetEnvRewriteRule发言?

例:

SetEnv MY_SCRIPT myScript.php

rewriteEngine on
RewriteRule ^(.*)$  %{MY_SCRIPT} [L]
Run Code Online (Sandbox Code Playgroud)

mod-rewrite setenv

10
推荐指数
1
解决办法
6432
查看次数

C++:Setenv().Visual Studio中未定义的标识符

根据我在网上找到的所有文档,看我的代码似乎是正确的.我的IDE是MS Visual Studio Xpress 4 Windows桌面2012,它的编译器抛出了错误:

Error 1 error C3861: 'setenv': identifier not found e:\users\owner\documents\visual studio 2012\projects\project1\project1\source1.cpp 18 1 Project1.

帮我!!!

#include <windows.h>
#include <sstream>
#include <ostream>
#include <cstdlib>
#include <iostream>
#include <stdlib.h>

using namespace std;

int howManyInClass = 0;
int main(){

long checklength = sizeof(getenv("classSize"))/sizeof(*getenv("classSize"));
if (checklength==0){
    cout<<"Please enter the ammount of students in your class";
    cin>> howManyInClass;
    cin.ignore();
    setenv("classSize", howManyInClass, 1);}

};
Run Code Online (Sandbox Code Playgroud)

c++ environment-variables setenv visual-c++ visual-studio-2012

10
推荐指数
2
解决办法
2万
查看次数