|
||
All files are handled by the file server, using either its local file system, or an installed file system. The server manages i/o activity, and contention, sharing and locking.
Client programs access the file server through a client API defined in
f32file.h
. This API includes all classes and functions needed for
file system, device, directory and file access, and associated utilities.
All access from client to server is through a file server session, an
instance of the RFs
class. After a client has connected an
RFs
to the file server, it can perform any file-related operation.
An RFs
is associated with a single current path: when a connection
to the file server is made the session path is automatically set to the private
directory of the connecting process.
After operations have been completed, file server-related clean-up should
be carried out using Close()
defined in the
RHandleBase
class. Note that for the majority of functions, when a
file or directory name is passed as an argument to the function, if no drive
letter or directory is specified, the missing path component will be taken from
the session path.
Only a single path is supported, and the path includes the drive. Each
component must have its own RFs
for its file access purposes. This
gives each component all the flexibility it needs to maintain its own current
path and other settings related to an RFs
. There is no limit on
the number of RFs
handles available to a single thread.
This is unlike DOS, which effectively maintains 26 current paths, one for each drive. DOS also maintains a current drive, and the effective current path is therefore the current path on the current drive.