summaryrefslogtreecommitdiff
path: root/examples/Mem_Map/file-reverse/file-reverse.cpp
diff options
context:
space:
mode:
authorlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1996-10-21 21:41:34 +0000
committerlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1996-10-21 21:41:34 +0000
commita5fdebc5f6375078ec1763850a4ca23ec7fe6458 (patch)
treebcf0a25c3d45a209a6e3ac37b233a4812f29c732 /examples/Mem_Map/file-reverse/file-reverse.cpp
downloadATCD-a5fdebc5f6375078ec1763850a4ca23ec7fe6458.tar.gz
Initial revision
Diffstat (limited to 'examples/Mem_Map/file-reverse/file-reverse.cpp')
-rw-r--r--examples/Mem_Map/file-reverse/file-reverse.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/examples/Mem_Map/file-reverse/file-reverse.cpp b/examples/Mem_Map/file-reverse/file-reverse.cpp
new file mode 100644
index 00000000000..d3431c40b0f
--- /dev/null
+++ b/examples/Mem_Map/file-reverse/file-reverse.cpp
@@ -0,0 +1,45 @@
+#include "ace/Log_Msg.h"
+// @(#)file-reverse.cpp 1.1 10/18/96
+
+#include "ace/Mem_Map.h"
+
+static void
+putline (const char *s)
+{
+ while (putchar (*s++) != '\n')
+ continue;
+}
+
+static void
+print_array_in_reverse (char *array, int size)
+{
+ size--;
+
+ if (array[size] == '\0')
+ array[size] = '\n';
+
+ while (--size >= 0)
+ if (array[size] == '\n')
+ putline (array + size + 1);
+
+ putline (array);
+}
+
+int
+main (int argc, char **argv)
+{
+ ACE_LOG_MSG->open (argv[0]);
+ void *cp;
+
+ if (argc != 2)
+ ACE_ERROR_RETURN ((LM_ERROR, "usage: %n file\n%a"), -1);
+
+ ACE_Mem_Map mmap;
+
+ if (mmap.map (argv[1]) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%n: %p\n%a", "mmap"), -1);
+
+ print_array_in_reverse ((char *) mmap.addr (), mmap.size ());
+
+ return 0;
+}