Hi! Пишу консольный клиент Gnutellы, и моя большая проблема - это нехватка знаний по ncurses. Задача заключается в следующем: есть список соединённых узлов (список структур), нужно их отображать в виде меню для произведения действий над оными. Интерфейс работает в отдельной нитке, в другой нитке крутится цикл с poll() над сокетами узлов, с обработкой евентов r/w. Обе нити имеют доступ к меню, всё синхронизируется через мьютексы (вроде с этим проблем нет). Элементы меню показывают текущее состояние узлов (rx, tx, status...) и обновляются по отдельности через запись в выделенную память указатель на к-рую был передан в new_item() и затем выполняются unpost_menu(); post_menu();. То есть что-то вроде этого (нет сорца с собой): node->caption = malloc(size); sprintf(node->caption, "%s", some_text); ... items[i] = new_item(node->caption, ""); ... menu = new_menu(items); ... unpost_menu(menu); sprintf(node->caption, "%s", other_text); post_menu(menu);
Правильно ли так делать? или может быть это не будет работать на других системах с др. curses? Please, help!