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.