TITLE: exit(), exec(), and fork() [ This material comes from "C++ Strategies and Tactics" by Robert B. Murry, p. 224 ] Under the current language rules, exit() causes static objects to be destroyed, but does NOT destroy the automatics! If you are depending on the destruction of an automatic to free some resource that is outside the process - such as a database lock - you will be in trouble. There may be other system calls that have the same problems. In UNIX System V and similar operating systems, a call to any of the exec() functions or to abort() will not cause automatics to be destroyed; and a call to fork() that is not followed by an exec() will cause the automatics to be bitwise duplicated, causing the external resource to be released twice!