How can I get a list of Linux system calls and number of args they take automatically?
strace
(home page) has tables with all this stuff in (see linux/<platform>/syscallent.h
). Source code available in GitHub/strace and GitLab/strace. For example, list of syscalls in x86_64 architecture are in this link.
The only list I know is the kernel source, in include/linux/syscalls.h. But that is only by name, not number; I think you need to use the syscall.h header for your particular platform to get the numbers. And there are a few #ifdefs in that file...
ausyscall - a program that allows mapping syscall names and numbers