18.11一个进程如何改变它的调用者的环境变量?
这有可能完全做不到。不同的系统使用不同的方法来实现像Unix 系统的全局名字/值功能。环境是否可以被运行的进程有效的改变, 以及如果可以, 又怎样去做, 这些都依赖于系统。
在Unix 下, 一个进程可以改变自己的环境(某些系统为此提供了setenv() 或putenv() 函数), 被改变的环境通常会被传给子进程, 但是这些改变不会传递到父进程。在MS-DOS 下, 总环境是可以操作的, 但是这需要晦涩难解的技巧。参见MS-DOS 的FAQ。
在Unix 下, 一个进程可以改变自己的环境(某些系统为此提供了setenv() 或putenv() 函数), 被改变的环境通常会被传给子进程, 但是这些改变不会传递到父进程。在MS-DOS 下, 总环境是可以操作的, 但是这需要晦涩难解的技巧。参见MS-DOS 的FAQ。