Subject: Re: Questions related to enhancing "tar"
From: Dario Alcocer <[email-masked]>
To: [email-masked]
Cc: John David Galt <[email-masked]>
Date: Thu, 28 Jun 2001 07:16:24 -0700

>>>>> "John" == John David Galt <[email-masked]> writes:

    John> First off, correct me if I'm wrong, but I assume that
    John> Cygwin's version of G++ uses the same underlying INT 21 BIOS
    John> calls for file access as Windows does.

No.  All Win32 programs, including the Cygwin programs, use the file
access routines of the Win32 API.  They don't use DOS anymore[1], which
used to be the INT 21h interface you refer to.

    John> The BIOS turns on the Archive attribute whenever a file is
              ^^^^
Actually, DOS is the one that used to perform this function.

    John> a) How do I read and write the Archive attribute bit from a
    John> program compiled in G++ under Cygwin?  Is it accessible
    John> using ioctl(), and what are the parameters?  (man pages that
    John> specific don't appear to exist for Cygwin.)

Best place to look is in the source to the Cygwin DLL; refer to the
following "mirrors" list:

    http://www.cygwin.com/mirrors.html

Grab the file cygwin-1.3.2-1-src.tar.gz, located in the latest/cygwin
directory.  Check if the Win32 file attributes function (sorry, I
don't recall the name of the function of the top of my head) is being
called anywhere.

    John> b) Does Cygwin have its own separate version of "tar"?  If
    John> not, would they be willing to host one, or a link to mine?

Well, you could modify the Cygwin tar, I guess.  However, I think an
easier thing to do is to write a shell script that calls tar to backup
your files, and then for each file, calls the 'attrib' program to
reset the archive bit.  Implementation of such a script is pretty
straightforward, and thus, is left as an exercise to the reader... :-)

[1] Well, not directly, in the case of Win9x and WinME.  For NT and
W2K, they don't use DOS at all.

-- 
Dario Alcocer -- Sr. Software Developer, Helix Digital Inc.
[email-masked] -- http://www.helixdigital.com

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/