📄 rfc1037.txt
字号:
Greenberg & Keene [Page 11]
RFC 1037 NFILE - A File Access Protocol December 1987
If you supply a handle and no pathname, the command format is:
(DELETE tid handle)
If you supply a pathname and no handle, the command format is:
(DELETE tid empty-token-list pathname)
The empty token list in the token list stream appears as a LIST-BEGIN
followed immediately by a LIST-END.
OPTIONAL KEYWORD/VALUE PAIRS
Four NFILE commands have "optional keyword/value pairs". These
commands are: COMPLETE, LOGIN, OPEN, and READ. Optional
keyword/value pairs can be either included in the command or omitted
entirely. There is no need to substitute the empty token list for
ommitted optional keyword tokens, unlike optional arguments. The
order of the option keyword/value pairs is not significant.
If included, optional keyword/value pairs are a sequence of
alternating keywords and values. The values associated with the
keywords can be keywords, lists, strings, Booleans, integers, dates,
date-or-never's, and time intervals. The text of each command
description states what type of value is appropriate for each
optional keyword.
Optional keyword/value pairs appear in the text as the keyword only,
in uppercase letters. For example, here is the format of the LOGIN
command:
Command Format:
(LOGIN tid user password FILE-SYSTEM USER-VERSION)
FILE-SYSTEM and USER-VERSION are two optional keywords associated
with the LOGIN command. The user side can supply USER-VERSION, and
omit FILE-SYSTEM as shown in this example:
(LOGIN x105 tjones let-me-in USER-VERSION 2)
As seen above, the optional keyword/value pair USER-VERSION, if
supplied in a command, consists of the keyword USER-VERSION followed
by the value to be used for that keyword (in this example, 2).
Greenberg & Keene [Page 12]
RFC 1037 NFILE - A File Access Protocol December 1987
7.3 Data Channel Handles and Direct File Identifiers
Several NFILE commands require an argument that specifies an opening.
This kind of argument is called a handle in the command description.
It is always a string type argument. A handle can be either a data
channel handle or a direct file identifier, depending on the mode of
the opening:
Data Stream
The handle must identify a data channel that is bound to an opening.
Direct Access
In general, the handle must be a direct file identifier. A direct
file identifier specifies a direct access opening. It is the same as
the value supplied in the DIRECT-FILE-ID keyword/value pair in the
OPEN command. It is used for all operations that identify an opening
rather than a data channel.
Two NFILE commands applicable to direct access openings are
exceptions to the general rule. The handle supplied in ABORT and
CONTINUE cannot be a direct file identifier, but must be a data
channel handle instead.
7.4 Syntax of File and Directory Pathname Arguments
Some arguments and return values in the NFILE command descriptions
represent file pathnames. These are strings in the pathname syntax
native to the server host. These pathnames contain no host
identifiers of any kind. These pathnames must be fully defaulted, in
the sense that they have a directory and file name (and file type, if
the server operating system supports file types). If appropriate, a
device is referenced in the pathname. If the server file system
supports version numbers, there is always an explicit version number,
even if that number or other specification is that system's
representation of "newest" or "oldest".
Greenberg & Keene [Page 13]
RFC 1037 NFILE - A File Access Protocol December 1987
Here are some examples of file pathnames, for different server hosts:
Server Host Example of File Pathname
------------------------------------------------------------
UNIX /usr/max/life.c
TOPS-20 ps:<max>life.bin.17
VMS MACD:[MAX]LIFE.FOR;3
Symbolics LMFS >max>life.lisp.newest
------------------------------------------------------------
The CREATE-DIRECTORY and HOME-DIRECTORY commands take a directory as
an argument. In NFILE commands, a directory is represented by a
string that names the directory. In most cases this string is in the
syntax native to the server host. However in some cases the native
format is modified somewhat to clarify that the string names a
directory, and not a file. For example, a directory on UNIX is
represented by "/usr/max/", not "/usr/max".
Here are some examples of directory pathnames for different server
hosts:
Server Host Example of Directory Pathname
------------------------------------------------------------
UNIX /usr/max/
TOPS-20 <max>
VMS MACD:[MAX]
Symbolics LMFS >max>hacks>
------------------------------------------------------------
7.5 Format of NFILE File Property/Value Pairs
Several NFILE commands request information regarding the properties
of files or directories. These commands include: DIRECTORY,
MULTIPLE-FILE-PLISTS, PROPERTIES, and CHANGE-PROPERTIES. This
section describes how file property information is conveyed over the
token list stream.
Greenberg & Keene [Page 14]
RFC 1037 NFILE - A File Access Protocol December 1987
File property information is usually sent in property/value pairs,
where the property identifies the property, and the following value
gives the value of that property for the specified file.
Each property is denoted either by a keyword or an integer. You can
mix both ways of specifying properties (keyword or integer) within a
single description. An integer is interpreted as an index into the
Property Index Table, an array of property keywords. The server can
optionally send a Property Index Table to the user during the
execution of the LOGIN command, although it is not required. This
greatly reduces the length of transmissions.
In command arguments, file properties cannot be specified with
integers; keywords must be used to specify file properties in command
arguments. Integers can be used to denote file properties only in
command responses.
We now list the keywords associated with file properties. This list
is not intended to be restrictive. If a programmer implementing
NFILE needs a new keyword, a new keyword (not on this list) can be
invented. The type of value of any new keywords is by default
string. The keywords are sorted here by conceptual data type:
Data type Keywords denoting file properties
----------------------------------------------------------------
Integers BLOCK-SIZE, BYTE-SIZE, GENERATION-RETENTION-COUNT,
LENGTH-IN-BLOCKS, LENGTH-IN-BYTES,
DEFAULT-GENERATION-RETENTION-COUNT
Dates CREATION-DATE, MODIFICATION-DATE
Date-or-never's REFERENCE-DATE, INCREMENTAL-DUMP-DATE,
COMPLETE-DUMP-DATE, DATE-LAST-EXPUNGED,
EXPIRATION-DATE
Time intervals AUTO-EXPUNGE-INTERVAL
Keyword Lists SETTABLE-PROPERTIES, LINK-TRANSPARENCIES,
DEFAULT-LINK-TRANSPARENCIES
Boolean values DELETED, DONT-DELETE, DONT-DUMP, DONT-REAP,
SUPERSEDE-PROTECT, NOT-BACKED-UP, OFFLINE,
TEMPORARY, CHARACTERS, DIRECTORY
Greenberg & Keene [Page 15]
RFC 1037 NFILE - A File Access Protocol December 1987
Strings ACCOUNT, AUTHOR, LINK-TO, PHYSICAL-VOLUME,
PROTECTION, VOLUME-NAME, PACK-NUMBER, READER,
DISK-SPACE-DESCRIPTION, and any keywords not
on this list
Note that these keyword names are intended to imply the semantics of
the properties. For a discussion of the semantics of CREATION-DATE:
See the section "NFILE OPEN Response Return Values", section 8.20.2.
The "Reference Guide to Streams, Files, and I/O" in the Symbolics
documentation set details the semantics that Symbolics associates
with these properties.
8. NFILE COMMANDS
It is important to understand the conventions used in each of the
following command descriptions. See the section "Conventions Used in
This Document", section 7.
8.1 ABORT Command
Command: (ABORT tid input-handle)
Response: (ABORT tid)
ABORT cleanly interrupts and prematurely terminates a single direct
access mode data transfer initiated with READ. The required input-
handle string argument identifies a data channel on which an input
transfer is currently taking place; this must be a direct access
transfer. input-handle must identify a data channel; it cannot be a
direct file identifier.
Upon receiving the ABORT command, the server checks to see if a
transfer is still active on that channel. If so, the server
terminates the transfer by telling the data connection logical
process to stop transferring bytes of data. The user side needs to
issue this command only when there are outstanding unread bytes.
This excludes the case of the data channel having been disestablished
or reallocated by the user side.
Whether or not a transfer is active on that channel, the user side
puts the data channel into the unsafe state. Before the data channel
can be used again, it must be resynchronized.
8.2 CHANGE-PROPERTIES Command
Command: (CHANGE-PROPERTIES tid handle pathname property-pairs)
Response: (CHANGE-PROPERTIES tid)
Greenberg & Keene [Page 16]
RFC 1037 NFILE - A File Access Protocol December 1987
CHANGE-PROPERTIES changes one or more properties of a file. Either a
handle or a pathname must be given, but not both. Whichever one is
given must be supplied as a string. handle identifies a data channel
that is bound to an open file; it can be a direct file identifier.
pathname identifies a file on the server machine.
property-pairs is a required token list of keyword/value pairs, where
the name of the property to be changed is the keyword, and the
desired new property value is the value.
The properties that can be changed are host-dependent, as are any
restrictions on the values of those properties. The properties that
can be changed are the same as those returned as settable-properties,
in the command response for the PROPERTIES command.
The server tries to modify all the properties listed in property-
pairs to the desired new values. There is currently no definition
about what should be done if the server can successfully change some
properties but not others.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -