/*
 * 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 "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;
}
