LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 672|回复: 1

为什么这个程序打印出的CLASSPATH=null啊!

[复制链接]
发表于 2004-8-13 12:28:36 | 显示全部楼层 |阅读模式
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main(int argc,char **argv,char **envp )
{
        //putenv("CLASSPATH=/usr/src/");
        system("export CLASSPATH=/usr");
        printf("CLASSPATH=%s\n",getenv("CLASSPATH"));
        while(*envp)
                printf("%s\n",*envp++);
        return 0;
}
发表于 2004-8-13 13:02:39 | 显示全部楼层
system() 执行时在一个新进程中运行了一个新的shell来执行命令
export CLASSPATH=/usr 设置的变量在新shell中有效,不改变当前进程环境

要改变当前环境,用 setenv()
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表