<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Frederik Eaton wrote:
<blockquote cite="mid20050828234725.GJ28358@a5.repetae.net" type="cite">
  <blockquote type="cite">
    <pre wrap="">But it isn't running "in a unix emulation environment."  cygwin is 
simply _not_ such an environment.  The program is started by a different 
shell, but that is _not_ an emulation environment.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Is it an elephant? A tree?
  </pre>
</blockquote>
I guess the most accurate way to describe it is that it tries to
emulate the _development_ environment of UNIX.&nbsp; It has gnu make and
various other utilities and shells compiled to run under win32.&nbsp; So you
can build things that rely on shell scripts, because the shell scripts
are executed by either (1) a shell, which knows the conventions about
how to execute scripts or (2) the make utility, which similarly has
been forced to behave such that makefiles that rely on scripting still
work.<br>
<br>
This does not, unfortunately, extend to the run time environment.&nbsp;
That's why I said it isn't an emulation environment.&nbsp; A program that is
executing is not different in any way from any other native win32
program that is executing.&nbsp; A program could be set up to check whether
it was started from a UNIX like shell, by querying it's parent process,
but obviously this has problems.<br>
<br>
O/S functions, such as the ones that allow one process to execute
another process, are unmodified.&nbsp; There is no library that intersperses
itself between the process and the O/S.&nbsp; So there is really no way to
change the O/S behavior, specifically with regard to running scripts,
but more generally in any way.<br>
<blockquote cite="mid20050828234725.GJ28358@a5.repetae.net" type="cite">
  <pre wrap="">Frederik

  </pre>
</blockquote>
<br>
</body>
</html>