Here we are going to discuss
using more precise language and with more technical details.
,
, and
provide the same functionality with different API.
Of them,
is the oldest and the best known. It is utilized widely. However,
and similar
do not scale well with the number of files, sockets, and other kernel objects that have file descriptors. Even worse,
and
may crash programs. They should not be used in enterprise‑strength codes. It is advisable to replace them at the first opportunity by
,
, or
that are safe.