日期:2014-05-16  浏览次数:21002 次

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、共享内存、管道吧,参见进程间通讯