<story><title>Humor: Interview with an Ex-Microsoftie Who Used to Name OS Folders</title><url>http://secretgeek.net/ex_ms.asp</url></story><parent_chain><item><author>plorkyeran</author><text>All of the names it makes fun of have perfectly sensible explanations.&lt;p&gt;&amp;quot;Program Files&amp;quot; and &amp;quot;Documents and Settings&amp;quot; have spaces to force software to support spaces in paths.&lt;p&gt;system32 for the Win32 version of system makes perfect sense. 64-bit Windows continues to use the Win32 API, and renaming system32 would have broken compatibility with dumb programs that hardcoded the name. SysWOW64 is the system32 directory for Windows 32-bit on Windows 64-bit. WOW64 is perhaps an overly cutesy name, but it&amp;#x27;s actually fairly descriptive.</text></item></parent_chain><comment><author>bodyfour</author><text>&amp;gt; to force software to support spaces in paths&lt;p&gt;And yet the platform where it&amp;#x27;s hardest to support spaces in paths is... windows!&lt;p&gt;On UNIX the process-creation API (execve) explicitly takes an array of arguments.  There really aren&amp;#x27;t any special characters as far as the API is concerned (except \0): what you pass to execve will be the same as what the new process sees in main()&lt;p&gt;In windows, CreateProcessW() just is given a command line with space-separated argument names.  Then the CRT in the new process will split that back up before main() is called.  To be sure to get the arguments you want in main() you need to carefully quote the parameter you pass to CreateProcess using the exact rules that the CRT will use to unquote them -- in my experience this wasn&amp;#x27;t well documented, either.&lt;p&gt;Worse, since that splitting is the responsibility of the new process, programs can skip the CRT and do it themselves.  If they don&amp;#x27;t follow exactly the same rules the CRT does things break if you try to send an argument with an escaped metacharacter.</text></comment>
<story><title>Humor: Interview with an Ex-Microsoftie Who Used to Name OS Folders</title><url>http://secretgeek.net/ex_ms.asp</url></story><parent_chain><item><author>plorkyeran</author><text>All of the names it makes fun of have perfectly sensible explanations.&lt;p&gt;&amp;quot;Program Files&amp;quot; and &amp;quot;Documents and Settings&amp;quot; have spaces to force software to support spaces in paths.&lt;p&gt;system32 for the Win32 version of system makes perfect sense. 64-bit Windows continues to use the Win32 API, and renaming system32 would have broken compatibility with dumb programs that hardcoded the name. SysWOW64 is the system32 directory for Windows 32-bit on Windows 64-bit. WOW64 is perhaps an overly cutesy name, but it&amp;#x27;s actually fairly descriptive.</text></item></parent_chain><comment><author>ciniglio</author><text>WoW isn&amp;#x27;t meant to be cutesy (which I think you hinted at, but to be explicit for others), it stands for Windows on Windows, which is the compatibility layer between different architectures (first 16 on 32, and now 32 on 64).&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Windows_on_Windows&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Windows_on_Windows&lt;/a&gt;</text></comment>