xref: /inferno-os/man/3/srv (revision 2b69dba5038ffd0b59cf30a4c44bce549e5097f8)
SRV 3
NAME
srv - server registry
SYNOPSIS
"bind #s" [ spec ] /chan

.EX sys->bind("#sspec", "/chan", Sys->MREPL);

DESCRIPTION
Srv converts between file system operations by applications and messages on channels, as described in sys-file2chan (2). Each attach that does not include a spec produces a new instance: an empty directory owned by the current user in which only files may be created, and then only by sys-file2chan , using a special internal interface. Each such file initially has the same owner as the directory, and permissions 8r600 (read-write for the owner only), but the permissions can be changed by Sys->wstat (see sys-stat (2)) and thus chmod (1). If mode Sys->DMEXCL is thereby set, the file becomes exclusive-use and can be opened by only one process at a time. The file length and mode bit Sys->DMAPPEND may also be set by wstat but are not interpreted by the system.

Files may be removed, directly using sys-remove (2) (and thus rm (1)), or indirectly by opening them with mode Sys->ORCLOSE (see sys-open (2)). File2chan also removes the corresponding file when the last references to the server's read and write channels have gone (eg, on server exit).

A spec may be given to name specific instances of srv , so that a new name space can bind in a service created in another. Only the owner (original creator) of the instance may attach to it, unless the mode of the service directory is changed using Sys->wstat (see sys-stat (2)) to have general access.

FILES
.TF /chan

/chan directory to which srv is conventionally bound by various applications

SOURCE
/emu/port/devsrv.c

/os/port/devsrv.c

SEE ALSO
plumb (1), wm (1), sys-file2chan (2)