⍇ File Read ('Quad-Read') ⍈ File Write ('Quad-Write') ⍐ File Hold ('Quad-Hold') ⍗ File Drop ('Quad-Drop')
APL files are identified by a file number, and components are accessed by component number. A file may be kept secure from other users by passwords, or by one of two methods of access control: control of access by user number, and a file or component hold facility.
The file system has been designed to facilitate casual use of the system without reducing the security features which may be required by more complex applications. Files are created automatically when the first write operation is performed.
Individual components may be any valid APL data, including overlays. The components keep their type and shape when stored and retrieved. Components may be added or inserted at any point in a file and any component may be deleted, even if it is located in the middle of a file.
APL files are located in a 'data space'. There may be several 'data spaces' throughout the system. Each 'data space' is independent of all other 'data spaces'. A utility program is supplied with APLX to create and maintain these 'data spaces', and this will be detailed in the system dependent notes. All file operations allow subscripts to select, via a logical unit number set in the
Basic File Operations
A file consists of a set of sequentially numbered components, each of which may be any APL variable. The components are referred to by their position within the file. Deletion of components or insertion of components within the file automatically renumbers the file in a manner similar to the renumbering of APL function lines during function editing. Files are created by the first valid write operation. Extensions to the built-in file functions allow information about the files, and their components to be read.
For each 'data space', the file system keeps tabs on the number of files each user owns and the size of those files. Each user has quotas which limit the number (if any) of files he may own, and the aggregate size of those files. In addition to the limits on a user, there are quota restrictions on the size of each individual file. The user is free to alter the default file size (which varies from system to system) upwards or downwards
Advanced File Operations
Each user of APLX can be allocated a user number (shown by
The Access Matrix is two columns wide. The first column is a list of user numbers
The access privileges can be given in two ways.
A positive privilege states what the user can do, and a negative privilege states what the user cannot do.
The privilege code is effectively a number generated by adding various powers of 2 (1,2,4,8,16,....), each power of 2 corresponding to a particular privilege. Positive privilege codes are merely the sum of the individual privileges granted, whilst negative privilege codes are generated by adding
Power of 2 Operation 0 (1) Read components 1 (2) 1⍇ 2⍇ 3⍇ 2 (4) Insert Components 3 (8) Append Components 4 (16) Replace Components 5 (32) 6 (64) Delete a File 7 (128) Delete a Component 8 (256) 9 (512) Set File Allocation 10 (1024) Rename 11 (2048) Hold/Release File 12 (4096) Hold/Release Components 13 (8192) 14 (16384) 6⍇ 7⍇ 15 (32768) 1⍇ 16 (65536) 2⍇ 17 (131072) 3⍇ 18 (262144) 19 (524288) Read Access Matrix 20 (1048576) Write Access Matrix
Privilege Meaning 0 No Access 1 Read Only Access 17 Read and Replace Access ¯1 Full Access ¯65 All Operations except Delete allowed
In addition to the access privileges afforded to users by the Access matrix, the Hold mechanism temporarily suspends file access by other users, whilst, for example, an updating operation is being carried out. Hold may be applied and released to whole files or components, and holds may be applied in two strengths
For more information, see the descriptions of the file-access primitives:
Copyright © 1996-2010 MicroAPL Ltd