Thanks for the prompt response and please be assured that it not a homework
Regarding "errno is part of libc, which all applications link with", (say it is a single threaded application), when the process gets loaded in memory errno will become part of the process. At that time:
 In which segment will the variable gets stored?
 How does a system call change a variable stored in user space?
Thanks again for your time,