www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2003/08/18/16:39:15

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/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
From: Benoit Rochefort <Benoit DOT Rochefort AT gerad DOT ca>
MIME-Version: 1.0
Message-ID: <16193.14627.802702.855384@scicily.montreal.ad-opt.com>
Date: Mon, 18 Aug 2003 16:37:55 -0400
To: cygwin AT cygwin DOT com
Subject: -x weirdness
Reply-To: benoitr AT ad-opt DOT com
X-OriginalArrivalTime: 18 Aug 2003 20:37:57.0342 (UTC) FILETIME=[9B82EFE0:01C365C8]
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id h7IKdES12536

When I installed cygwin, permissions on all the distribution looks like:

###############################################################################
$ ls -al /usr/bin/bash
-rwx------+   1 Administ Domain U   531968 Mar 13 04:29 /usr/bin/bash*
###############################################################################

As you can see, even if I am:

###############################################################################
$ id 
uid=17199(benoitr) gid=10513(Domain Users) groups=10513(Domain Users),11121(Exceed Users)
###############################################################################

I can however run bash and every other programs. I suppose
it is a Windoze weirdness. But, what is interesting is "How
can I know if a program can be executed"? Often, I write
scripts where the flow of control depend on the availability
of a particular program.

So check this out:

###############################################################################
$ [ -x /usr/bin/bash ]; echo $?
0
$ /usr/bin/test -x /usr/bin/bash; echo $?
1
$ perl -e 'print -x "/usr/bin/bash" ? 0 : 1 , "\n"'
1
###############################################################################

I guess only bash is correct...

Looking at the source code of bash (in test.c), we discover
what seems to be the "correct" way of guessing if a program
can be executed:

    case 'x':                   /* File is executable? */
      return (EACCESS (arg, X_OK) == 0);

where EACCESS is:

#if defined (AFS) || defined (__CYGWIN__)
#  define EACCESS(path, mode)   access(path, mode)
#else
#  define EACCESS(path, mode)   test_eaccess(path, mode)
#endif /* AFS */


I'd like to know if:

Someone will notice and eventually correct the bug

- or -

I'm wrong, this is not a bug

- or -

Tell me a way to interprete these results.

Do I have to mail this problem to a perl mailing list?

Thanks

-- 
           *º¤., ¸¸,.¤º*¨¨¨*¤  Benoit Rochefort  *º¤., ¸¸,.¤º*¨¨¨*¤


--
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