31st March 2004
I am indebted to Sebastian Schmidt <yath@yath.eu.org> for the following historical information:
Date: Sat, 24 Apr 2004 15:01:24 +0200
From: Sebastian Schmidt <yath@yath.eu.org>
To: mike@miketaylor.org.uk
Subject: /bin/true and IEFBR14
first of all grat compliments to your True in a Nutshell. :-)
But as a user of z/OS (formerly called OS/390) I would appreciate, if you mentioned IEFBR14[1]. This is the equivalent of /bin/true[2] on mainframe OSes.
It is usually not used in the way it's used in UNIX, but for other purposes like deleting files. An example JCL (the language in which jobs are written) could be:
//DELETE EXEC PGM=IEFBR14 //FOO DD DSN=THIS.IS.THE.FILE.TO.DELETE, // DISP=(MOD,DELETE,DELETE), // SPACE=(TRK,(1,1))
The DD means ``data definition'' and allocates a file called THIS.IS.THE.FILE.TO.DELETE if it does not exist yet. If IEFBR14 fails it deletes this file, as well as it doesn't fail.
The only purpose of IEFBR14 is to meet JCL's requirements of having an EXEC statement per step.
Footnotes:
Update (11th August 2005): I have received an email containing correction and expanation for this account of IEFBR14, from David Bagwell <dbagwell@chartertn.net>, who was one of the co-authors of IEFBR14.
Another Update (5th December 2006): I have received another email, disagreeing with the last, from Norman Diamond. I have no idea who's right, but I find it fsacinating that the Internet allows this kind of debate on a topic that you would have thought was of interest to no-one at all.
Yet Another Update (8th March 2011): John H. Lister disagrees with Norman Diamond.