## 4 Filenames

Temporary files are used during normal operation of CSSC (and SCCS). Many of these are given fixed names. The prefixes for the various files used by CSSC are listed in the table below.

‘`s.`’

  The history file itself.

‘`l.`’

  The delta summary file created by `get -l`. Unlike the other files in this table, the l-file is created in the current directory.

‘`p.`’

  The file containing the list of edit locks.

‘`z.`’

  The lock file used to arbitrate access to the history file. The running CSSC (or SCCS) program puts its PID into this file. Some versions of SCCS (but not CSSC) will break the lock after 60 seconds if the specified PID is not running on the local machine. In order to work more reliably over networked file systems, CSSC will not do this; stale lock files would have to be removed manually.

‘`x.`’

  Temporary file into which is written the new s-file. Once processing is complete, the old s-file is replaced by the x-file.

‘`q.`’

  Temporary file into which is written the new p-file

‘`d.`’

  Temporary file used by delta; contains the gotten body of the previous version (which we run diff against). This filename is used by SCCS in the same situation, but according to the SCCS manual pages, it puts the output of `diff` in this file instead.

‘`u.`’

  Encoded version of the gotten file; created by delta.

Except for the l-file, all of the temporary files in the above table are created in the same directory as the s-file. The l-file is created in the current working directory.

Since these filenames are always fixed, it is important that the permissions on the directory containing the SCCS file be secure; otherwise you have a security vulnerability where a malicious user can cause you to accidentally over-write files you own or have access to, but they do not. If you are the super-user, they can use this feature to overwrite any file on the system.