mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-07-10 00:06:08 -04:00
22 lines
434 B
C
22 lines
434 B
C
#include <fcntl.h>
|
|
#include <wlr/util/log.h>
|
|
|
|
#include "util/fd.h"
|
|
|
|
bool set_cloexec(int fd, bool cloexec) {
|
|
int flags = fcntl(fd, F_GETFD);
|
|
if (flags == -1) {
|
|
wlr_log_errno(WLR_ERROR, "fcntl failed");
|
|
return false;
|
|
}
|
|
if (cloexec) {
|
|
flags = flags | FD_CLOEXEC;
|
|
} else {
|
|
flags = flags & ~FD_CLOEXEC;
|
|
}
|
|
if (fcntl(fd, F_SETFD, flags) == -1) {
|
|
wlr_log_errno(WLR_ERROR, "fcntl failed");
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|