Separation of file/directory pathname canonicalization from validation
Original Publication Date: 1999-Nov-01
Included in the Prior Art Database: 2003-Jun-18
Most file systems will 'complete' a partial file or directory specification by using the current working directory information along with whatever partial information is given. This process of creating a complete, syntactically correct specification (the canonical form) is sometimes referred to as 'canonicalization'. This canonical form is important, since it completely and uniquely identifies the file system resource, whether a file, directory or some other type of resource. Another important task is the semantic validation of a path, made up of the root, intermediate directories (if any) and file or directory specification. All intermediate directories must be valid for a pathname to refer to a valid file system resource. The exception is that the final term, whether a file, directory or other name, might not exist at the time of validation, since the operation requested of the file system may be to create it or, indeed, to check whether it exists. These two tasks are most often intertwined in a single function or set of functions. This makes sense in some file systems, such as a UNIX file system (UFS), where all resources are local and creations, modifications and deletions are all within the same data scope of an operating system process and can be easily synchronized. The combination of these two functions can also effect some savings by being more efficient. If the current working directory for a given process is taken to be always valid (which assumes some method to prevent other processes from modifying that file system information while a process is 'in it'), then validation of a path can start with the partial information specified by the user of the file system.