|
|
1.1 ! root 1: Sample: Bpointer ! 2: ! 3: When several processes need to access shared data, there is no guarantee ! 4: that the shared memory is mapped to the same locations in both processes. ! 5: This can cause a problem when the data contains relative pointers because ! 6: a pointer value that is valid in one processe's context may not be valid ! 7: in the context of the other processes. ! 8: ! 9: This sample demonstrates the use of based pointers to allow manipulation of ! 10: shared data from several processes using memory mapped files. This ! 11: technique is applicable to all forms of shared memory. ! 12: ! 13: It contains the following modules: ! 14: ! 15: ! 16: readdata.exe : A console process that allows you to view the shared data; ! 17: it dereferences pointers as it encounters them. ! 18: chgdata.exe : A console process that lets you add elements to a shared ! 19: linked list. ! 20: ! 21: ! 22: Note, however, that based pointers cut down on the performance of the ! 23: application using it because the pointers need to be resolved at runtime; ! 24: that is, each access typically adds one machine instruction overhead when ! 25: dereferencing a pointer. ! 26: ! 27: Once the files are compiled, execute chgdata.exe and follow the ! 28: instructions posted there. ! 29: ! 30:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.