Annotation of embedaddon/php/ext/shmop/README, revision 1.1.1.2
1.1 misho 1: last update Jan 2, 2002 (hackie@prohost.org/ilia@prohost.org)
2:
3: Shared Memory Operations Extension to PHP
4:
5: While developing a search deamon we needed a php based front end
6: to communicate the deamon via SHM. PHP already had a shared memory
1.1.1.2 ! misho 7: extension (sysvshm) written by Christian Cartus <cartus@atrior.de>,
! 8: unfortunately this extension was designed with PHP only in mind and
1.1 misho 9: offers high level features which are extremly bothersome for basic SHM
10: we had in mind. After spending a day trying to reverse engineer and figure
11: out the format of sysvshm we decided that it would be much easier to
1.1.1.2 ! misho 12: add our own extension to php for simple SHM operations, we were right :)).
1.1 misho 13:
14: the functions are:
15:
16: int shmop_open(int key, string flags, int mode, int size)
17:
18: key - the key of/for the shared memory block
19: flags - 4 flags are avalible
20: a for read only access (sets SHM_RDONLY)
21: w for read & write access
22: c create or open an existing segment (sets IPC_CREATE)
23: n create a new segment and fail if one already exists under same name (sets IPC_CREATE|IPC_EXCL)
24: (the n flag is mostly useful for security perpouses, so that you don't end up opening a faked segment
25: if someone guesses your key)
26: mode - acsess mode same as for a file (0644) for example
27: size - size of the block in bytes
28:
29: returns an indentifier
30:
31:
32: char shmop_read(int shmid, int start, int count)
33:
34: shmid - shmid from which to read
35: start - offset from which to start reading
36: count - how many bytes to read
37:
38: returns the data read
39:
40: int shmop_write(int shmid, string data, int offset)
41:
42: shmid - shmid from which to read
43: data - string to put into shared memory
44: offset - offset in shm to write from
45:
46: returns bytes written
47:
48: int shmop_size(int shmid)
49:
50: shmid - shmid for which to return the size
51:
52: returns the size in bytes of the shm segment
53:
54:
55: int shmop_delete(int shmid)
56:
57: marks the segment for deletion, the segment will be deleted when all processes mapping it will detach
58:
59: shmid - shmid which to mark for deletion
60:
61: returns 1 if all ok, zero on failure
62:
63: int shmop_close(int shmid)
64:
65: shmid - shmid which to close
66:
67: returns zero
68:
69:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>