读书人

system(quot;export MY_ENV1=WAHAHAquot;)没有

发布时间: 2012-03-05 11:54:03 作者: rapoo

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

读书人网 >UNIXLINUX

热点推荐