Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Операционные системы > Linux (Ubuntu, Debian, Red Hat, CentOS, Mint)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 24.02.2019, 13:18   #1
kompildan
Пользователь
 
Регистрация: 16.02.2019
Сообщений: 14
По умолчанию ошибка при запуске(компиляции) программы

Код:
#define TRUE 1
#define DELAY 5
#define WIDTH 100
#define HEIGHT 25
#define CHILD_OFFSET_ROW 10
#define PARENT_OFFSET_ROW 8
 
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <ncurses.h>
#include <time.h>
 
WINDOW *create_newwin(int height, int width, int starty, int startx);
void destroy_win(WINDOW *local_window);
 
int main(int argc, char *argv[])
{
    int child_status = -1;
    char symbol;
    pid_t pid;
 
    initscr();
    curs_set(0);
 
    noecho();
    halfdelay(DELAY);
 
    pid = fork();
    switch(pid)
    {
    case -1:
    {
        printw("Erorr while creating child process\n");
        refresh();
 
        flushinp();
        getch();
 
        exit(EXIT_FAILURE);
    }
    case 0:
    {
        WINDOW* childWindow = create_newwin(HEIGHT, WIDTH, 0, 0);
 
        while(symbol != '\n')
        {
            time_t seconds = time(NULL);
            struct tm* timeinfo = localtime(&seconds);
 
            wmove(childWindow, CHILD_OFFSET_ROW, 0);
            wprintw(childWindow, "Current Date and Time by Child_: %s", asctime(timeinfo));
            //wprintw(childWindow, " : %d", getpid());
            wrefresh(childWindow);
 
            flushinp();
            symbol = getch();
        }
 
        destroy_win(childWindow);
 
        exit(EXIT_SUCCESS);
        break;
    }
    default:
    {
        while(TRUE)
        {
            time_t seconds = time(NULL);
            struct tm* timeinfo = localtime(&seconds);
 
            move(PARENT_OFFSET_ROW, 0);
            printw("Current Date and Time by Parent: %s", asctime(timeinfo));
            refresh();
 
            if(waitpid(pid, &child_status, WNOHANG) > 0)
                break;
 
            napms(DELAY);
        }
 
        clear();
        if (WIFEXITED(child_status))
        {
            printw("Chiled exited with status of %d\n", WEXITSTATUS(child_status));
            printw("Press ENTER key, to continue...");
            refresh();
        }
        else
        {
            printw("Chiled exited with an error");
            refresh();
        }
 
        nocbreak();
        flushinp();
        getch();
 
        break;
    }
    }
 
   endwin();
 
   return 0;
}
 
WINDOW *create_newwin(int height, int width, int starty, int startx)
{
    WINDOW *local_window;
 
    local_window = newwin(height, width, starty, startx);
 
    box(local_window, 0 , 0);       // 0, 0 gives default characters
                                // for the vertical and horizontal
                                // lines
 
    wrefresh(local_window);     // Show that box
 
    return local_window;
}
 
void destroy_win(WINDOW *local_window)
{
    /* box(local_win, ' ', ' '); : This won't produce the desired
     * result of erasing the window. It will leave it's four corners
     * and so an ugly remnant of window.
     */
 
    wborder(local_window, ' ', ' ', ' ',' ',' ',' ',' ',' ');
 
    /* The parameters taken are
     * 1. win: the window on which to operate
     * 2. ls: character to be used for the left side of the window
     * 3. rs: character to be used for the right side of the window
     * 4. ts: character to be used for the top side of the window
     * 5. bs: character to be used for the bottom side of the window
     * 6. tl: character to be used for the top left corner of the window
     * 7. tr: character to be used for the top right corner of the window
     * 8. bl: character to be used for the bottom left corner of the window
     * 9. br: character to be used for the bottom right corner of the window
     */
 
    wrefresh(local_window);
    delwin(local_window);
}
Изображения
Тип файла: jpg Снимок экрана от 2019-02-24 12-34-17.jpg (98.7 Кб, 142 просмотров)
Тип файла: png Снимок экрана от 2019-02-24 12-35-22.png (30.5 Кб, 49 просмотров)

Последний раз редактировалось Serge_Bliznykov; 25.02.2019 в 10:04.
kompildan вне форума Ответить с цитированием
Старый 24.02.2019, 13:23   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

Ну очевидно же, что либа ncurses не подтянулась. Дев.пакет для нее стоит?
p51x вне форума Ответить с цитированием
Старый 24.02.2019, 13:35   #3
kompildan
Пользователь
 
Регистрация: 16.02.2019
Сообщений: 14
По умолчанию

да установлена
правда пишет "Заметьте, вместо «ncurses-dev» выбирается «libncurses5-dev»", что странно )
Изображения
Тип файла: png Снимок экрана от 2019-02-24 13-34-09.png (37.0 Кб, 41 просмотров)
kompildan вне форума Ответить с цитированием
Старый 24.02.2019, 14:23   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

переместите -lncurses в конец комманды для g++
p51x вне форума Ответить с цитированием
Старый 25.02.2019, 15:01   #5
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,700
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
переместите -lncurses в конец комманды для g++
Поддерживаю, для gcc важен порядок ключей
Black Fregat вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при запуске программы Denis Wazowski Общие вопросы по Java, Java SE, Kotlin 12 05.12.2018 11:23
Ошибка при запуске программы SLAUR Общие вопросы Delphi 6 08.09.2017 11:15
Ошибка при запуске программы lisica198808 Помощь студентам 5 08.12.2013 22:45
ошибка при запуске программы с++ IVT27 Помощь студентам 4 11.11.2012 17:09
Ошибка при запуске программы после компиляции Neo_AVE C++ Builder 2 27.02.2011 09:13


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS