I know this is a few years late but was cited as an answer to a similar question (making both answers wrong). While this answer more correctly answers the other question, I couldn't find where to respond.
You can find out by using
strace. Run the GUI or command line software or command from the terminal preceded by
In the simplest case
strace runs the specified command until it exits. It intercepts and records the system calls which are called by a process and the signals which are received by a process. The name of each system call,
its arguments and its return value are printed on standard error or to the file specified with the
strace is a useful diagnostic, instructional, and debugging tool. System administrators, diagnosticians and trouble-shooters will find it invaluable for solving problems with programs for which the source is not readily
available since they do not need to be recompiled in order to trace them. Students, hackers and the overly-curious will find that a great deal can be learned about a system and its system calls by tracing even ordinary programs. And programmers will find that since system calls and signals are events that happen at the user/kernel interface, a close examination of this boundary is very useful for bug isolation, sanity checking and attempting
to capture race conditions.
Each line in the trace contains the system call name, followed by its arguments in parentheses and its return value. An example from stracing the command
cat /dev/null is:
open("/dev/null", O_RDONLY) = 3