Re: System call and library call
"James Kanze" <james.kanze@gmail.com> wrote in message
news:1178410987.112141.136540@h2g2000hsg.googlegroups.com...
On May 5, 11:16 pm, "Jim Langston" <tazmas...@rocketmail.com> wrote:
"leoman730" <leoman...@gmail.com> wrote in message
news:1178231577.159315.62880@l77g2000hsb.googlegroups.com...
This is one of the interview question this morning, hope someone can
help out with this. Thanks.
What is the different between System call and library call?
A system call is calling a function or API that interfaces with the
operating system.
A library call is calling a function or API that interfaces with a
library.
The library itself may make system calls.
As far as the application programmer is concerned, there is no
difference. He links against a "system library" (integrated
with the C runtime in libc under Unix, one of four or more
different variants under Windows). How that library achieves
what it achieves is really an implementation detail. On the
systems I've worked on, that actual system interface involved a
hardware level trap or interrupt, and couldn't be directly
called from C++; some of the functions in the "system library"
did nothing more than map the C++ (or C) calling sequence to
these conventions; others did more.
It's possible that something like that is what the interviewer
was looking for; that a system call went through some special
hardware mechanism, e.g. to change context, pass into system
mode, etc., where as other library calls don't. Then again,
it's possible that he was looking for something else. Unless
the job was for some sort of kernel level work, it's a worthless
question.
-------------
Which may of been exactly the answer the interviewer was looking for.
General computer/os/program/compiler knowledge.