next up previous contents index
Next: Manipulating Process Templates Up: The OSFriends Interface Previous: Manipulating User Specifications

Miscellaneous File-System Operations

 

 

PROCEDURE EqualFile(f1, f2: File): BOOLEAN RAISES {Error};

    EqualFile returns TRUE if the two file handles refer to the same underlying regular file, device, or pipe. This is not needed if both are regular files, since the vid and fileSeq fields in the record returned by OS.GetInfo uniquely determine regular files.

Ultrix note: EqualFile reports all sockets and pipes as equal.

 

PROCEDURE EnsureAllWritten() RAISES {Error};

  EnsureAllWritten is equivalent to calling OS.EnsureWritten for every open local file. It is also the only way to ensure that directory modifications have been flushed to disk.

   

PROCEDURE MakeDevice(
    dir: Dir;
    path: PathName;
    devMajor: Major;
    devMinor: Minor;
    mode: FileMode)
  RAISES {Error}; (* FileExistsEC, NotSuperUserEC *)

    MakeDevice creates a device file with the specified path name and major and minor device number. MakeDevice raises FileExistsEC if the specified path name is already in use, or NotSuperUserEC unless the caller is the super-user. MakeDevice sets the file mode of the new device file to the specified file mode, adjusted using the value of the umask (see the GetUMask procedure on page [*]).

 

PROCEDURE SetExclusiveUse(
    f: File;
    flag: BOOLEAN := TRUE)
  RAISES {Error};
  (* BadFileEC, InvalidObjectEC, RemoteFileEC *)

  SetExclusiveUse[*] sets or resets the exclusive-use flag on the file referred to by f; it raises InvalidObjectEC unless f refers to a regular file or device. When a file has its exclusive-use flag set, further opens on the same file are rejected. Once the flag is set, it stays set until all open-file objects referring to the file are deleted, which occurs when all file handles referring to those open-file objects are closed.

Taos note: There is currently no known good use for the exclusive-use flag.

The exclusive-use flag has no relationship to advisory locks.


next up previous contents index
Next: Manipulating Process Templates Up: The OSFriends Interface Previous: Manipulating User Specifications
Paul McJones
8/28/1997