ncurses в фоновом режиме?

#c #ncurses

#c #ncurses

Вопрос:

Почему ncurses не работает в фоновом режиме?

 #include <iostream>
#include <ctime>
#include <unistd.h>
#include <ncurses.h>

int main () {
    setlocale(LC_ALL, "");
    while (true) {
        time_t seconds = time(nullptr);
        tm* timeinfo = localtime(amp;seconds);
        if (timeinfo->tm_hour >= 23 || timeinfo->tm_hour <= 3) {
            unsigned wait = 15 * 60;

            initscr(); cbreak(); noecho();
            printw("Go to bed, pls)n");
            printw("Press enter:");
            int ch = getch();
            while (ch == 410) {
                ch = getch();
            }
            endwin();

            sleep(wait);
            continue;
        }
        unsigned wait = (23 - timeinfo->tm_hour) * 3600 - (60 - timeinfo->tm_min) * 60 - timeinfo->tm_sec;
        sleep(wait);
    }
}
  

Но когда я запускаю этот код в фоновом режиме (./a.out amp;), я не вижу окна ncurses. Возможно ли это исправить?

Комментарии:

1. Для правильного отображения программы ncurses должна быть единственной программой, выводящей текст на терминал. Если вы поместите его в фоновом режиме, то ваши взаимодействия на переднем плане будут мешать размещению курсора, прокрутке, выбору цвета шрифта и т. Д. Просто Не очень хорошая идея….

2. Вероятно, он ожидает ввода, но не может получить его, потому что он находится в фоновом режиме. Вывод произойдет, когда ввод будет готов…

3. Попробуйте запустить vi в фоновом режиме. Работает ли это? Должно ли это работать? Как это должно работать?