当前位置: 技术问答>linux和unix
system("export MY_ENV1=WAHAHA")没有效果,帮忙看看了
来源: 互联网 发布时间:2016-01-07
本文导语: int ret; char* tmp = 0; tmp = getenv("LD_LIBRARY_PATH"); printf("LD_LIBRARY_PATH = %sn", tmp); ret = system("export MY_ENV1=WAHAHA"); tmp = getenv("MY_ENV1"); printf("ret=%d, MY_ENV1 = %sn", ret, tmp); 打印结果: LD_LIBRARY_PATH = /root/tslib/lib ...
int ret;
char* tmp = 0;
tmp = getenv("LD_LIBRARY_PATH");
printf("LD_LIBRARY_PATH = %sn", tmp);
ret = system("export MY_ENV1=WAHAHA");
tmp = getenv("MY_ENV1");
printf("ret=%d, MY_ENV1 = %sn", ret, tmp);
打印结果:
LD_LIBRARY_PATH = /root/tslib/lib
ret=0, MY_ENV1 = (null)
如果我先在 shell 里面执行 export MY_ENV1=
那么打印结果是
LD_LIBRARY_PATH = /root/tslib/lib
ret=0, MY_ENV1 =
谢谢!!
char* tmp = 0;
tmp = getenv("LD_LIBRARY_PATH");
printf("LD_LIBRARY_PATH = %sn", tmp);
ret = system("export MY_ENV1=WAHAHA");
tmp = getenv("MY_ENV1");
printf("ret=%d, MY_ENV1 = %sn", ret, tmp);
打印结果:
LD_LIBRARY_PATH = /root/tslib/lib
ret=0, MY_ENV1 = (null)
如果我先在 shell 里面执行 export MY_ENV1=
那么打印结果是
LD_LIBRARY_PATH = /root/tslib/lib
ret=0, MY_ENV1 =
谢谢!!
|
用setenv函数,不要用system.
|
那就这样
if ( fork() == 0 )
{
setenv(....);
exec ( 其它进程 )
}
if ( fork() == 0 )
{
setenv(....);
exec ( 其它进程 )
}
|
这个是办不到滴,用share memory吧
|
用文件方式或socket、共享内存、管道吧,参见进程间通讯