The C API makes no assumption about where files will be stored. The Objective-C API is opinionated and generates unique filenames based the crash ID (which it generates itself). So if you call -[KSCrash reportUserException] it will generate a new crash ID and call kscrash_reinstall(). https://github.com/mindsnacks/KSCrash/pull/1/files#L6R354

The architecture of the library is such that the C layer (records crashes to disk) can stand on its own, but all file paths must be injected for each crash. The Objective-C layer (manages crash reports and sends them to a server) is mostly convenience functions wrapping the C layer, file management, and network communications.