shm_printmap.c

00001 #include <stdio.h>
00002 #include <sys/shm.h>
00003 #include <sys/stat.h>
00004 #include "map_definitions.h"
00005 
00006 int main ()
00007 {
00008         int segment_id;
00009         char *shared_memory;
00010         char c;
00011         int i, j ;
00012         const int shared_segment_size = sizeof(char) * MAP_WIDTH * MAP_HEIGHT;
00013 
00014         /* Get segment identificator in a read only mode  */
00015         segment_id = shmget (SHM_MAP_KEY, shared_segment_size,
00016                              S_IRUSR );
00017 
00018         /* Attach the shared memory segment */
00019         shared_memory = (char*) shmat (segment_id, (void*) 0, 0);
00020 
00021         /* Main boucle */
00022         do{
00023                 printf("\n+");
00024                 for(i=0;i<MAP_WIDTH;i++) printf("-");
00025                 printf("+\n");
00026                 for (j=0;j<MAP_HEIGHT;j++){
00027                         printf("|");
00028                         for(i=0;i<MAP_WIDTH;i++) printf("%c", *(shared_memory+i+j*MAP_WIDTH));
00029                         printf("|\n");
00030                 }
00031                 printf("+");
00032                 for(i=0;i<MAP_WIDTH;i++) printf("-");
00033                 printf("+\n");
00034                 printf("\n\nPress any key to reload map, q to quit\n");
00035                 scanf ("%c",&c);
00036 
00037         } while (c!= 'q');
00038         /* Detach the shared memory segment.  */
00039         shmdt (shared_memory);
00040 
00041         return 0;
00042 }

Generated on Thu Sep 13 11:28:28 2007 for DCE-Eurobot by  doxygen 1.5.3