/* * This work is licensed under the terms of the GNU GPL, version 2 or later. * See the COPYING file in the top-level directory. */ #include "qemu/osdep.h" #include "cutils.h" #include "qapi/error.h" /** * qga_open_cloexec: * @name: the pathname to open * @flags: as in open() * @mode: as in open() * * A wrapper for open() function which sets O_CLOEXEC. * * On error, -1 is returned. */ int qga_open_cloexec(const char *name, int flags, mode_t mode) { int ret; #ifdef O_CLOEXEC ret = open(name, flags | O_CLOEXEC, mode); #else ret = open(name, flags, mode); if (ret >= 0) { qemu_set_cloexec(ret); } #endif return ret; }