* ENV_NAME_FDS has the following format: Each descriptor as string followed
* by a comma; there's a trailing comma. Example: "2,4,". */
static void init_from_environment(void) {
+ const char *env;
+
+ initialized = 1;
tracked_fds_count = 0;
- const char *env = getenv(ENV_NAME_FDS);
+ /* If ENV_NAME_FORCE_WRITE is set and not empty, allow writes to a non-tty
+ * device. Use with care! Mainly used for the test suite. */
+ env = getenv(ENV_NAME_FORCE_WRITE);
+ if (env && env[0] != '\0') {
+ force_write_to_non_tty = 1;
+ }
+
+ env = getenv(ENV_NAME_FDS);
if (!env) {
return;
}
#ifdef DEBUG
static void tracked_fds_debug(void) {
- debug("tracked_fds: %d/%d\n", tracked_fds_count, tracked_fds_space);
+ debug("tracked_fds: %d/%d\t[%d]\n", tracked_fds_count, tracked_fds_space,
+ getpid());
size_t i;
for (i = 0; i < tracked_fds_count; i++) {
debug("tracked_fds[%d]: %d\n", i, tracked_fds[i]);