I always understood that Unix touch was primarily used to for non-distructive assurance that the file existed. No changes to an existing file and automatically creating a file when it was not already there.
> -----Original Message----- > From: IBM Mainframe Discussion List <[email protected]> On > Behalf Of Bernd Oppolzer > Sent: Friday, August 2, 2024 3:31 PM > To: [email protected] > Subject: Re: How to "touch" mainframe files > > [EXTERNAL EMAIL] > > Phil asked: > > This makes me realize that I don't know what "touch" actually does. I mean, I > know the effect, but what does it have to do to make that happen? > > IMO: > > The arcane Unix systems probably had only one timestamp per file, no > difference for read/write, and files are simply chains of bytes, so I believe > that > what touch does is open the file for append, then append nothing and then > close the file. > This way the date (of last write) should be set to the current date (or > timestamp). > > A simple open for read should IMO not change the date of a file. > > But that's some speculation on my part ... > > HTH, kind regards > > Bernd > > > Am 02.08.2024 um 22:30 schrieb Phil Smith III: > > Billy Ashton asked how to do the equivalent of a USS "touch" on a z/OS data > set. > > > > I'm wondering if there's something like the C "DD:ddname" filename > specification hack that could be used. I know this would seem odd: run a > batch job that uses BPXwhatever to run USS "touch", but if it's possible...? > > > > This makes me realize that I don't know what "touch" actually does. I mean, > > I > know the effect, but what does it have to do to make that happen? If it's some > filesystem function, a minimal C program might be able to use the > "DD:ddname" hack and that function. Googling suggests that it just opens the > file and that that's sufficient to update it, but there has to be more, since > it can > optionally update just the last access time, without updating the last changed > time. > > > > In fact, the more I think about this, I now wonder what "last referenced" > even means; I assume it's time of last access, not change? > > > > Billy wrote, in part: > >> We don't want to do things like allocate, open, and print one record, > >> as some of these files are huge (25-50GB). > > Would you need to print a record to update "last referenced"? Shouldn't > reading a record suffice? Do you even need to do that? Why does the size of > the file matter here? > > > > I'm sure these are dumb questions but my in-depth filesystem knowledge is > for other OSes, so I'm just knowledgeable enough to be curious... > > > > ---------------------------------------------------------------------- > > For IBM-MAIN subscribe / signoff / archive access instructions, send > > email to [email protected] with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, send email to > [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
