Python repository containing parsed standard C library function and argument information
I already did the heavy lifting for you, just look at functions.py.
If you want to build it yourself, just clone the repo and make clean all
.
Things will probably blow up, which is why I included a Dockerfile
. You can build with make release
.
>>> from functions import functions
>>> print functions['memcpy']
Function(type='void', derefcnt=1, name='memcpy', args=[Argument(type='void', derefcnt=1, name='dest'), Argument(type='void', derefcnt=1, name='src'), Argument(type='size_t', derefcnt=0, name='n')])
>>> print functions['memcpy'].args
[Argument(type='void', derefcnt=1, name='dest'), Argument(type='void', derefcnt=1, name='src'), Argument(type='size_t', derefcnt=0, name='n')]
>>> print functions['memcpy'].args[0]
Argument(type='void', derefcnt=1, name='dest')
>>> print functions['memcpy'].type
void
>>> print functions['memcpy'].derefcnt
1
Basically we just pass everything to PyCParser
and extract all functions and arguments, as well as their types.
Some syscalls are not in any standard C headers, so these have been added to missing.txt
. The signatures are manually (pun!) extracted from the man pages.