About execve()

int execve(const char *pathname, char *const argv[], char *const envp[]);

args

shebang

form of shebang

#!interpreter [optional-arg]

NOTE: There can be only one [optional-arg]: How programs get run

After checking those first two bytes, this code parses the rest of the script-invocation line, splitting it into an interpreter name (everything after #! up to the first white space) and possible arguments (everything else up to the end of the line, stripping external white space).

Mapping segment