system("export MY_ENV1=WAHAHA")没有效果,帮忙看看了
int ret;
char* tmp = 0;
tmp = getenv( "LD_LIBRARY_PATH ");
printf( "LD_LIBRARY_PATH = %s\n ", tmp);
ret = system( "export MY_ENV1=WAHAHA ");
tmp = getenv( "MY_ENV1 ");
printf( "ret=%d, MY_ENV1 = %s\n ", 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 ( 其它进程 )
}
------解决方案--------------------这个是办不到滴,用share memory吧
------解决方案--------------------用文件方式或socket、共享内存、管道吧,参见进程间通讯