~ubuntu-branches/ubuntu/breezy/php5/breezy-security

« back to all changes in this revision

Viewing changes to ext/shmop/README

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-10-09 03:14:32 UTC
  • Revision ID: james.westby@ubuntu.com-20051009031432-kspik3lobxstafv9
Tags: upstream-5.0.5
ImportĀ upstreamĀ versionĀ 5.0.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
7
        extention (sysvshm) written by Christian Cartus <cartus@atrior.de>,
 
8
        unfortunatly this extention was designed with PHP only in mind and
 
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
 
12
        add our own extention to php for simple SHM operations, we were right :)). 
 
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