This package installs a C11 language library; it implements an interface to non–local exits, which is somewhat similar to exceptions handling. The library targets posix systems.
This project is still in the development phase; the project is hosted at GitHub.
Non–local exits are a way to transfer execution from one point to another in a
program; they are implemented by the standard C library through the setjmp()
and longjmp()
functions. CCExceptions uses the posix variants
sigsetjmp()
and siglongjmp()
.
The main usage pattern for the library’s facilities is the following:
cce_location_t L[1]; if (cce_location(L)) { /* handle the exception here */ cce_run_clean_handlers_final(L); } else { /* do something useful here */ cce_run_body_handlers(L); }
CCExceptions is free software: you can redistribute it and/or modify it under the terms of the gnu Lesser General Public License, either version 3 of the License, or (at your option) any later version.
Error and vulnerability reports are appreciated, all the vulnerability reports are public; register them using the Issue Tracker at the project’s GitHub site. For contributions and patches please use the Pull Requests feature at the project’s GitHub site.
Contributions are welcome. For contributions and patches please use the Pull Requests feature at the project’s GitHub site. Code must come in standard C11 language; there are no strict coding conventions. The hierarchy of built–in condition objects can be augmented following the same coding practices already used in the library