vfs man page on MacOSX

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
MacOSX logo
[printable version]

vfs(n)									vfs(n)

______________________________________________________________________________

NAME
       vfs - Filesystem management in Tcl

SYNOPSIS
       package require Tcl  8.4

       package require vfs  ?1.2.1?

       vfs::filesystem mount ?-volume? path command

       vfs::filesystem unmount path

       vfs::filesystem info ?path?

       vfs::filesystem fullynormalize path

       vfs::filesystem posixerror int

       vfs::filesystem internalerror command

_________________________________________________________________

DESCRIPTION
       The  package  vfs provides commands to query, mount and unmount virtual
       filesystems implemented in Tcl. This is further facilitated through the
       provison	 of helper commands in a tcl script library. See section "HAN‐
       DLER ENVIRONMENT" of vfs-fsapi for more information.

       Once a virtual filesystem is in place, the standard Tcl commands,  like
       file,  glob,  cd,  pwd,	open,  including  all  their C APIs in the Tcl
       library (e.g.   Tcl_FSOpenFileChannel,  Tcl_FSMatchInDirectory,	exten‐
       sions  such  as Tk which may open or read files will also transparently
       access the virtual filesystem).

       Because all of Tcl's filesystem activity passes through a single layer,
       every  operation can be intercepted. This package does just that.  This
       is also quite different from simply overloading	the  file  command  in
       Tcl.   We  are  actually	 providing  replacements  for  C commands like
       access, stat, etc.  By implementing a small number  of  low-level  com‐
       mands  we ensure that all commands at higher levels will function irre‐
       spective of what is going on inside the filesystem layer.

       Tcl's filesystem hooks operate on  a  per-process  basis.   This	 means
       every Tcl interpreter in the same process/application will see the same
       filesystem, including any virtual filesystems.

       To access this package use the command package require vfs.  This auto‐
       matically  registers  the  vfs hooks into Tcl's filesystem and provides
       the command vfs::filesystem. The	 latter	 allows	 the  registration  of
       actual  virtual	filesystems.  More  in	the upcoming section API.  The
       hooks will not be removed until Tcl exits.  If  desired,	 control  over
       this  could be exposed to Tcl in the future.  By and in itself the com‐
       mand above will have no further effect. Only after filesystem implemen‐
       tations	have  been  registered and filesystems using them been mounted
       filesystem commands will actually be intercepted, and  handled  by  the
       Tcl code of the mounted virtual filesystem.

API
       vfs::filesystem mount ?-volume? path command
	      Mounts  a	 virtual  filesystem at path, making it useable. After
	      completion of the call any access to a subdirectory of path will
	      be  handled  by  that  filesystem. The filesystem is represented
	      here by the command prefix which will be	executed  whenever  an
	      operation	 on  a	file  or  directory within path has to be per‐
	      formed.

	      Whether the command is implemented in C or Tcl is	 of  no	 rele‐
	      vance  as	 long  as it adheres to the API specified in vfs-fsapi
	      and is present in the interpreter where the mount	 operation  is
	      executed.

	      If  the  option -volume is specified the new mount point is also
	      registered with Tcl as a new volume and will therefore from then
	      on  appear  in  the  output of the command file volumes. This is
	      useful (and required for reasonable operation) for  mounts  like
	      ftp://.  It  should  not	be  used  for paths mounted inside the
	      native filesystem.

	      The new filesystem mounts will be observed  immediately  in  all
	      interpreters  in	the  current  process.	 If the interpreter is
	      later deleted, all mounts which are intercepted by  it  will  be
	      automatically removed (and will therefore affect the view of the
	      filesystem seen by all interpreters).

       vfs::filesystem unmount path
	      This unmounts the virtual filesystem which was mounted at	 path.
	      An  error	 is  thrown if no filesystem was mounted there.	 After
	      the completion of the operation the filesystem  is  not  visible
	      anymore,	and  any  previous  filesystem accessible through this
	      path becomes accessible again.

       vfs::filesystem info ?path?
	      A list  of  all  filesystems  mounted  in	 all  interpreters  is
	      returned,	 if no path argument was specified.  Else the filesys‐
	      tem responsible for that path is examined and the command prefix
	      used  to handle all filesystem operations returned.  An error is
	      thrown if no filesystem is mounted for that path.

	      There is currently no facility for  examining  in	 which	inter‐
	      preter each command will be evaluated.

       vfs::filesystem fullynormalize path
	      Performs a full expansion of path, (as per file normalize). This
	      includes the following of any links in the last element of path.

       vfs::filesystem posixerror int
	      This command can be called by filesystem implementations	during
	      the  execution  of  a  filesystem	 operation to signal the posix
	      error code of a failure. See also vfs-fsapi.

       vfs::filesystem internalerror command
	      When used the specified command is registerd as the  command  to
	      trap  and report any internal errors thrown by filesystem imple‐
	      mentations.

LIMITATIONS
       The code of the package vfs has only a few limitations.

       [1]    One subtlety one has to be aware of is that mixing case-(in)sen‐
	      sitive  filesystems  and	application  code may yield unexpected
	      results.

	      For example mounting a case-sensitive virtual filesystem into  a
	      case-insensitive	system	(like  the  standard  Windows or MacOS
	      filesystems) and then using this	with  code  relying  on	 case-
	      insensitivity  problems  will  appear when accessing the virtual
	      filesystem.

	      Note that application code relying  on  case-insensitivity  will
	      not  under  Unix	either,	 i.e.  is inherently non-portable, and
	      should be fixed.

       [2]    The C-API's for link and lstat are currently not exposed to  the
	      Tcl  level.  This	 may  be  done	in the future to allow virtual
	      filesystems implemented in Tcl to support the reading and	 writ‐
	      ing of links.

       [3]    The  public  C-API filesystem function Tcl_FSMatchInDirectory is
	      given a variety of type information in a Tcl_GlobTypeData struc‐
	      ture.   Currently	 only  the  type  field	 of  said strcuture is
	      exposed to the tcl-level.	 Fields	 like  permissions  and	 MacOS
	      type/creator are ignored.

SEE ALSO
       vfs-filesystems, vfs-fsapi

KEYWORDS
       file, filesystem, vfs

COPYRIGHT
       Copyright (c) 2001-2003 Vince Darley <vincentdarley@users.sourceforge.net>
       Copyright (c) 2003 Andreas Kupries <andreas_kupries@users.sourceforge.net>

Tcl-level Virtual Filesystems	      1.0				vfs(n)
[top]

List of man pages available for MacOSX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net