I want to instrument a *Mathematica* script so that, upon receiving any system signal (e.g. `SIGINT`, aka `Ctrl-C`) it will print<sup>1</sup> the value returned by `MaxMemoryUsed[]`.

I have read [this earlier answer][1] and the `LibraryLink` docs, but I still can't figure out how to adapt the solution given in that answer so that `my_handler` can invoke `MaxMemoryUsed`, and print out its result.  IOW, I can't figure out what to replace the `???` below with so that `my_handler`'s printout shows the value returned by `MaxMemoryUsed[]`:

    void my_handler (int s) {

        fprintf(stderr, \"MaxMemoryUsed[] returned: %d\\n\", ???);

        /* ------------------------------------------------------- */

        fprintf(stderr, \"Received signal: %d\\n\", s);

        /* additional signal-handling code follows */
    }

---
(One other possible way to achieve what I'm trying to do would be something like an `atexit` mechanism, but I have not been able to find anything like that for *Mathematica*.  Yet a third possibility would be to implement the script so that it periodically prints the value of `MaxMemoryUsed` to a file.  Unfortunately, for most of the script's lifetime, it is evaluating a single, irreducible *Mathematica* expression, and I don't know how to implement frequent periodic updating of an output file under these circumstances.  In any case, even if I knew how to do it, this last alternative is a distant second-best.)

---
<sup><sup>1</sup> preferably to stderr, but either stdout or some file is also OK.</sup>

  [1]: http://mathematica.stackexchange.com/a/32524/2464