You have the same script try open the shm segment 2 times, which is WRONG. Here is a proper example of what you should be doing:
<?php define("SHMKEY", 0xDEAD); define("SEMKEY", 0xCAFE); if( !($shm_id = shmop_open(SHMKEY, 'c', 0644,10)) ) { exit("Segment already exists and you do not have write permissions to it, or you cannot create a new segment\n"); } $data = shmop_read($shm_id, 0, shmop_size($shm_id)); shmop_close($shm_id); echo $data."\n"; ?> I've also committed the patch to CVS that should eliminate the warning message. I wonder why Zend required strings with defined length to be null terminated, sounds like a recipe for disaster, if the length is known it should be used. But, whatever, please try the latest CVS. Regards, Ilia On January 17, 2002 02:33 am, you wrote: > On Wed, 2002-01-16 at 21:19, Ilia A. wrote: > > I've tested your code on 4.1.1 release with the recent SHMOP patch that > > is already part of the latest CVS. The code worked fine and did not > > generate any warning or errors. > > > > I did however commented out the sem_* functions. > > That's funny, I've just downloaded php from cvs today (08.00 CET) and > this script: > > <?php > define("SHMKEY", 0xDEAD); > define("SEMKEY", 0xCAFE); > > $shm_id = @shmop_open(SHMKEY, "a", 0644, 10); > if (!$shm_id) > { > $shm_id = shmop_open(SHMKEY, "c", 0644, 10); > shmop_write($shm_id, "0", 0); > } > > $shm_id = shmop_open(SHMKEY, "a", 0644, 10); > > $count = shmop_read($shm_id, 0, shmop_size($shm_id)); > shmop_close($shm_id); > echo $count ."\n"; > ?> > > generates the following error: > Unknown(0) : Warning - String is not zero-terminated (0) (source: > zend_execute_API.c:274) > > Using: > './configure' \ > '--enable-debug' \ > '--enable-shmop' \ > '--enable-sysvsem' \ > "$@" > > > -- robin -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]