An oft-overlooked pain point is that when interacting with C interfaces, it's not good enough to implement a C ABI FFI. There's a world of software out there where the supporrted interface is a C API, at the source level. Compatibility across different versions, or across different implementations, is assured only to programs which interact with the interfaces in ways that correspond particular C source patterns.
The biggest culprit I've met on this front is the POSIX stat family of functions.
The biggest culprit I've met on this front is the POSIX stat family of functions.