}
int acquire_terminal(const char *name, bool fail, bool force) {
- int fd = -1, notify = -1, r, wd;
+ int fd = -1, notify = -1, r, wd = -1;
assert(name);
}
for (;;) {
- if ((r = flush_fd(notify)) < 0)
- goto fail;
+ if (notify >= 0)
+ if ((r = flush_fd(notify)) < 0)
+ goto fail;
/* We pass here O_NOCTTY only so that we can check the return
* value TIOCSCTTY and have a reliable way to figure out if we
return 0;
}
+int make_stdio(int fd) {
+ int r, s, t;
+
+ assert(fd >= 0);
+
+ r = dup2(fd, STDIN_FILENO);
+ s = dup2(fd, STDOUT_FILENO);
+ t = dup2(fd, STDERR_FILENO);
+
+ if (fd >= 3)
+ close_nointr_nofail(fd);
+
+ if (r < 0 || s < 0 || t < 0)
+ return -errno;
+
+ return 0;
+}
+
static const char *const ioprio_class_table[] = {
[IOPRIO_CLASS_NONE] = "none",
[IOPRIO_CLASS_RT] = "realtime",