delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2005/04/25/23:53:47

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <426DBB5D.5660669D@dessent.net>
Date: Mon, 25 Apr 2005 20:54:05 -0700
From: Brian Dessent <brian AT dessent DOT net>
Organization: My own little world...
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: system() fails on pristine Windows systems
References: <426D5CAB DOT 2070804 AT awcubed DOT com> <d4jrnk$hkk$1 AT sea DOT gmane DOT org> <426DB60B DOT 9090004 AT awcubed DOT com>
X-IsSubscribed: yes
Reply-To: cygwin AT cygwin DOT com

Archie Warnock wrote:

> Hmmm...  you're right.  Thanks.  I was hoping the mention of /bin/sh was
> more figurative - ie, just _a_ command interpreter.  Guess not, eh?

That is how system() works on every unix platform: "/bin/sh -c %s"

> So, what would be the right way to call an external program from a
> Cygwin program without installing Cygwin, if not system()?

You could fork() and exec(), or just call one of the spawn() family of
functions.  This is all open source you know, you could look and see how
system() is implemented in winsup/cygwin/syscalls.cc.

> I also find it somewhat puzzling that it works on my development
> machines even though /bin/sh isn't anywhere along in the path of the
> Windows command shell.

The path is irrelevent because it's called as "/bin/sh -c cmd", and the
location of /bin is taken from the mount table.  On your systems without
Cygwin installed you could just mount /bin to point to a directory that
contains sh.exe and it would work.  Though I don't recommend that.  If
you can avoid not depending on the mount table it will probably make
your program work better on systems without Cygwin installed.  However,
that's kind of off topic for this list, as people here don't really care
about experiences of people that don't have Cygwin installed.

Brian

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019