Please fill in the blanks. Each blank is worth 5 points. Blanks with the same number have the same answer!
struct bar *foo(const struct dog *);and a function pointer
void *(*p)(const void *);Then we can assign the value of
ponly via a type cast
p = (________________1________________) foo;This kind of cast is necessary for starting up a ________2________, because one wants to pass it an argument of ________3________ type.
pid = wait3(&status,0,&rusage);
pidis the process identifier of the last process that ________4________, while status is that process's ________5________.
pid = fork();creates two copies of a program. In the parent,
pidis the identifier of the ________6________, while in the child,
pidis ________7________. Failure to flush a formatted I/O output buffer before a
forkcan lead to ________8________ output.
execl("/usr/bin/foo", "/usr/sbin/bar", "cat");does the same thing as typing ________9________ on the command line. It replaces all ________10________ memory with that contained in the new program, but leaves ________11________ memory largely alone. Among other things, the program's ________12________ variable values and I/O ________13________ are preserved after an
getrusageare part of the ________14________ stored in kernel memory.