[systemd-devel] Why do we must use the close_all_fds(3) function in some files?
Lennart Poettering
lennart at poettering.net
Mon Jun 16 08:24:50 PDT 2014
On Mon, 16.06.14 21:32, Geunsik Lim (geunsik.lim at gmail.com) wrote:
> Hi all,
>
> Recently, i checked that there are some of the "close_all_fds" functions
> as follows
> Why we Systemd run this functions? Whey this functions need Systemd's
> management?
>
> invain at u1204lgs:/sandbox/tizentvfolder/systemd$ grep -R "close_all_fds" ./*
> ./src/nspawn.c: close_all_fds(NULL, 0);
> ./src/util.c:int close_all_fds(const int except[], unsigned n_except) {
> ./src/util.c: close_all_fds(NULL, 0);
> ./src/main.c: close_all_fds(NULL, 0);
> ./src/spawn-agent.c: close_all_fds(NULL, 0);
> ./src/execute.c: err = close_all_fds(socket_fd >= 0 ?
> &socket_fd : fds,
> ./src/execute.c: err = close_all_fds(fds, n_fds);
> ./src/util.h:int close_all_fds(const int except[], unsigned n_except);
David is right, this is really just a safety net, and particularly
useful when one of our tools is invoked from arbitrary code that might
not be written cleanly.
Lennart
--
Lennart Poettering, Red Hat
More information about the systemd-devel
mailing list