Hello. I don't understand it at all. I'm trying to cache some data in a shared memory segment with PHP 4.0.4pl1's shm functions. I do this like this: <?php $key["shm"] = 0x4711; $key["var"] = 0x0815; $file = "services"; $size = filesize( $file ); $fd = fopen( $file, "r" ); $data = fread( $fd, $size ); fclose( $fd ); $magic_size_shm = 42; /********* ?????????????? WHY ????????? *********/ $size_data = strlen( $data ); $size_shm = strlen( serialize( $data ) ) + $magic_size_shm; $shm = shm_attach( $key["shm"], $size_shm ); $data_shm = @shm_get_var( $shm, $key["var"] ); if( ! $data_shm ){ shm_put_var( $shm, $key["var"], $data ); $data_shm = shm_get_var( $shm, $key["var"] ); } shm_detach( $shm ); ?> What I don't understand at all is, why I need to add this "$magic_size_shm" to the "strlen( serialize( $data ) )" value. The value I need to add seems to be always between 41 and 49, but it varies depending on the data I want to store. According to the manual and the comments there, I'd have thought that it is enough to just alloc "strlen( serialize( $data ) )" - why is that not so? Now, before someone suggest to try shmop instead - this is not working at all. I've tried the example from the shmop manual page on php.net, and this totally breaks. These lines don't work at all on my system: $shm_size = shmop_size($shm_id); echo "SHM Block Size: ".$shm_size. " has been created.\n"; For my system, it returns totally varying values which are all WAY below 0, like -1072562176, or -722337792 or -914554880 .... Because of that, PHP cannot access the shmop segment. This is on a current Mandrake Cooker (beta) system with glibc 2.2.2, kernel 2.4.2 (also tried 2.4.3). PHP was compiled with gcc 2.96. Someone please help me! Alexander Skwar -- How to quote: http://learn.to/quote (german) http://quote.6x.to (english) Homepage: http://www.digitalprojects.com | http://www.iso-top.de iso-top.de - Die günstige Art an Linux Distributionen zu kommen Uptime: 1 day 8 hours 43 minutes -- PHP General 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]