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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

Код:
#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);
}
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок экрана от 2019-02-24 12-34-17.jpg
Просмотров: 99
Размер:	98.7 Кб
ID:	95954  
Изображения
 

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

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

да установлена
правда пишет "Заметьте, вместо «ncurses-dev» выбирается «libncurses5-dev»", что странно )
Изображения
 
kompildan вне форума   Ответить с цитированием
Старый 24.02.2019, 15:23   #4
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,894
Репутация: 2668
По умолчанию

переместите -lncurses в конец комманды для g++
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 25.02.2019, 16:01   #5
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,499
Репутация: 1038
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


08:14.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.