From: MERC::"uunet!CRVAX.SRI.COM!RELAY-INFO-VAX" 23-APR-1992 03:33:49.22 To: INFO-VAX@KL.SRI.COM CC: Subj: re: LIB$SPAWN misbehaves, SYS$INPUT not really inherited? [PPF's] [I had written that PPF, "process-permanent file", refers to a file opened by DCL. Carl Lydick responded:] Actually, it refers to certain files opened by DCL. SYS$INPUT, SYS$OUTPUT, SYS$COMMAND, and SYS$ERROR are the standard PPFs. You can open other files via the DCL OPEN command, but these are NOT PPFs. Sorry, that's not correct. According to the VMS Glossary - the only place I was able to find a formal definition - a process permanent file is "A file opened or created through ... RMS ... by supervisor or executive mode when the process permanent bit is set in the file-processing options field." Less formally, the DCL Concepts book says a PPF is a file that is POTENTIALLY open for the life of the process. It lists SYS$INPUT and friends as the DEFAULT PPF's available to a process. This is certainly true of a file OPEN'ed from DCL level. Files OPEN'ed from DCL level are certainly being accessed at an inner mode, or they'd be closed at the next user-mode image rundown - but they are not. What the documentation doesn't tell you is whether DCL sets the process permanent bit when opening the file. To be really sure, you'd have to check the code. There is, however, another bit of evidence. The logical names for PPF follow an escaping convention: The first four bytes contain Hex 1B, Hex 00, and then the 16-bit RMS IFI (Internal File Identifier). The Introduction to System Services explicitly tells you that the logical name entries for the default PPF's follow this convention. It doesn't tell you if ONLY PPF's may follow this convention. Still, "escaped logical name" has usually been identified with PPF in documentation. Unfortunately, you can't check whether logicals created with OPEN are "es- caped" from DCL, since SHOW LOGICAL, SHOW TRANSLATION, F$LOGICAL, and F$TRNLNM all understand the convention and strip the escape sequence. So you have to write a little program, which I did - and, sure enough, the logical name that gets created when you OPEN a file from DCL is "escaped". -- Jerry