1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
<html>
<head>
<title>System calls and library calls</title>
<script language="JavaScript">
</script>
</head>
<body bgcolor="#ffffcc">
<hr>
<center>
<h1>System calls and library calls</h1>
</center>
<hr>
<p>
I have wondered for sometime what the difference is between
system calls (found in section 2 of the man pages)
and library calls (in section 3).
Its simple...
<ul>
<li>system calls are provided by the <i>system</i>
and are executed in the system kernel. They are entry points
into the kernel and are therefore NOT linked into your
program. These are not portable
calls.
<li>Library calls include the ANSI C standard library and are
therefore portable. These functions are linked into your program.
</ul>
It is worth noting that, because system calls are part of the
O/S. The program has to make a context switch to the kernel
when they are called and because of this, they have a high
startup overhead. The upside is that the time executing these
routines is assigned to the OS and not the user program.
<p>
<hr>
<p>
<center>
<table border=2 width="80%" bgcolor="ivory">
<tr align=center>
<td width="25%">
<a href="../cref.html"> Top</a>
</td><td width="25%">
<a href="../master_index.html"> Master Index</a>
</td><td width="25%">
<a href="../SYNTAX/keywords.html"> Keywords</a>
</td><td width="25%">
<a href="../FUNCTIONS/funcref.htm"> Functions</a>
</td>
</tr>
</table>
</center>
<p>
<hr>
<address>Martin Leslie
</address><p>
</body>
</html>
|