|
|
1.1 ! root 1: .TH SRV 3 ! 2: .SH NAME ! 3: srv \- server registry ! 4: .SH SYNOPSIS ! 5: .nf ! 6: .B bind #s /srv ! 7: ! 8: .BI #s/ service1 ! 9: .BI #s/ service2 ! 10: ... ! 11: .fi ! 12: .SH DESCRIPTION ! 13: The ! 14: .I srv ! 15: device provides a one-level directory holding ! 16: already-open channels to services. ! 17: In effect, ! 18: .I srv ! 19: is a bulletin board on which processes may post open file descriptors ! 20: to make them available to other processes. ! 21: .PP ! 22: To install a channel, ! 23: .B create ! 24: a new file such as ! 25: .B /srv/myserv ! 26: and then write a text string (suitable for ! 27: .IR strtoul ; ! 28: see ! 29: .IR atof (2)) ! 30: giving the file descriptor number of an open file. ! 31: Any process may then open ! 32: .B /srv/myserv ! 33: to acquire another reference to the open file that was registered. ! 34: .PP ! 35: An entry in ! 36: .I srv ! 37: holds a reference to the associated file even if no process has the ! 38: file open. Removing the file from ! 39: .B /srv ! 40: releases that reference. ! 41: .PP ! 42: It is an error to write more than one number into a server file, ! 43: or to create a file with a name that is already being used. ! 44: .SH EXAMPLE ! 45: To drop one end of a pipe into ! 46: .BR /srv , ! 47: that is, to create a named pipe: ! 48: .IP ! 49: .EX ! 50: int fd, p[2]; ! 51: char buf[32]; ! 52: ! 53: pipe(p); ! 54: fd = create("/srv/namedpipe", 1, 0666); ! 55: sprint(buf, "%d", p[0]); ! 56: write(fd, buf, strlen(buf)); ! 57: close(fd); ! 58: close(p[0]); ! 59: write(p[1], "hello", 5); ! 60: .EE ! 61: .PP ! 62: At this point, any process may open and read ! 63: .B /srv/namedpipe ! 64: to receive the ! 65: .B hello ! 66: string. Data written to ! 67: .B /srv/namedpipe ! 68: will be received by executing ! 69: .IP ! 70: .EX ! 71: read(p[1], buf, sizeof buf); ! 72: .EE ! 73: .PP ! 74: in the above process. ! 75: .SH SOURCE ! 76: .B /sys/src/9/port/devsrv.c
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.