LibreOffice + i3
Доброго времени суток!
У меня одного при открытии lowriter в i3 и нажатии на кнопку «Файл» прога перестает подавать признаки жизни, отрисовка основного окна не работает? Помогает только killall oosplash
.
Доброго времени суток!
У меня одного при открытии lowriter в i3 и нажатии на кнопку «Файл» прога перестает подавать признаки жизни, отрисовка основного окна не работает? Помогает только killall oosplash
.
Доброго времени суток!
Как сделать так, чтобы в прогах можно было пользоваться синтаксисом наподобие boost::bind: boost::bind(compare, _1, _2)(a, b);
?
То есть как писать функции с двумя скобками f(a)(b)
?
Доброго времени суток!
появилась потребность собрать GSL (желательно, последнюю версию) под MSVS 2013. Я не в зуб ногой во вражеских технологиях, тем более, в MSVS, да и в инете не нашлось годной информации по сборке: все, что удавалось найти - не работало или не собиралось. Есть ли у кого ПОДРОБНЕЙШИЕ маны по сборке сего чуда божественного под иноземской вражеской системой?
Доброго времени суток!
подскажите, как сказать g++, чтобы он подключал статическую версию библиотеки вместо динамической при линковке?
Также интересует, как можно сказать программе не использовать libstdc++ и libgcc_s (ну или статически их подключить).
Доброго времени суток!
Требуется сделать таблицу 5*3, причем первые два столбца должны иметь разделительные линии, а внутри последнего столбца должно находится изображение. Ну или подойдет вариант такой: слева таблица 5*2, справа изображение.
Как?
Доброго времени суток!
Задача такова: допустим, у нас есть (запущено) несколько потоков, каждый из которых, естественно, может завершиться в любой момент времени. Есть родительский для них процесс, который хочет вовремя определять, когда и кто из них остановился и при необходимости сразу перезапустить. Если бы у нас был один поток, то достаточно было бы простого join
, но в случае нескольких - первый join
должен заблокировать поток выполнения родительского процесса, пока не завершится первый поток и в этом случае остальные джоины не сработают. Решение вида «на каждый новый поток создавать еще поток-контролёр», конечно, сработает, но выглядит как-то вычурно и, подозреваю, что в нем тоже будут недостатки (поток сможет создать дочерний поток???).
Я где-то заблуждаюсь или эту задачу можно решить только используя процессы? В общем, как она решается?
Доброго времени суток!
Столкнулся с проблемой написания структуры с переменной длиной поля. На С++ код пишется элементарно и выглядит как:
template <uint8_t len> struct TPack{
char Length=len;
char Item[2];
char Value[len];
};
Не спорю, что можно бы выделить под Value аж 256 байт, коих с головой хватит под нужную строку, но это требуется для того, чтобы максимально снизить количество передаваемой информации. И не объявлять же под каждую передаваемую связку Item-Value новую структуру нужного размера (Хотя с точки зрения компилятора С++, каждое новое использование шаблона именно это и подразумевает)!
Может, в сях есть уже готовые структуры подобного вида, но мне они не известны.
Доброго времени суток!
После написания функционала демона решил покопаться в репозиториях в поисках готовых решений и нашел небольшую библиотечку libdaemon, в которой в принципе весь нужный функционал есть. Но вот вопрос: почему ни один пакет в системе от нее не зависит и разработка ее давно прекращена? такое ощущение, что каждый разработчик пишет демона для своих целей с нуля. Еще большим вопросом стало: почему systemd ее никак не использует, учитывая, что и то, и другое было разработано Поттерингом и ее функционал в systemd вроде бы лишним не является? Почему все признали ненужность этой либы?
Доброго времени суток!
Кто-нибудь имел с JXOS дело? Какие плюсы-минусы можете о ней сказать? На встраиваемых системах оно как себя показывает? Время запуска Java-машины как обычно оставляет желать лучшего? Последний апдейт ее был 8 лет назад.
Доброго времени суток!
Собственно, сабж. Допустим, у меня есть девайс, который общается с компом по USB и, в принципе, библиотеки libUSB хватает с избытком. Какая извращенная задача должна прийти в голову, чтобы пришлось забыть о (libUSB+прошивка девайса) и работать на уровне ядра?
То же касается любой другой шины.
Доброго времени суток!
При написании своего демона ребром встал вопрос выбора способа общения между клиентом и сервером. Поискал в инете, что лучше использовать, но адекватных сравнений там не нашел: кто-то пишет, что curl в три раза медленнее будет, чем сокеты, кто-то - что примерно так же, с незначительными задержками. В общем, результаты варьируются значительно, в зависимости от того, как курл использовать.
Чтобы больше прояснить ситуацию, скажу, что демон будет принимать и отсылать сообщения небольшого размера (<= 512 байт + заголовок) по протоколу FTP. От него требуется устойчивость при разрыве, расширяемость (кто знает, какие опции в будущем придется добавить, но размер сообщения больше 512 байт не станет, может ключ шифрования придется увеличить) и высокая скорость работы.
Из чего вопрос: легкая расширяемость сURL - большее преимущество, чем высокая скорость работы сокетов для данной задачи или нет? В смысле, скорость сильно должна пострадать при выборе cURL?
Доброго времени суток!
Столкнулся с проблемой смешанной компиляции на gcc/g++. Приложение компилится нормально, даже с флагами -Wall -pedantic
существенных ворнингов не выдает, но после запуска сразу же вылетает, при этом об ошибке не говорит. Когда запускаю в gdb, говорит, что произошел сегфолт на вызове стандартной функции:
Program received signal SIGSEGV, Segmentation fault.
_IO_vfprintf_internal (s=0x0, format=0x402248 "%s I'm here", ap=0x7fffffffe460) at vfprintf.c:1278
1278 vfprintf.c: Нет такого файла или каталога.
Также, если забыть про GCC и все компилить в G++, поправив файлы (забыть про cfunctions, внести эти функции в daemon.cpp), то все запускается и работает.
Ах да, вот файл проекта.
Подскажите, где косячит сборка?
Доброго времени суток!
А какие стандартные линуксовые средства есть для парсинга конфигов? Настало время изучить flex + bison или Libboost? Или есть еще что-то более стандартное?
Доброго времени суток!
Продолжаю изучать классы. В данный момент меня в ступор поставило следующее: если вместо базового класса, использовать его потомка, созданного после вызова fork()
, то программа перестает уметь писать логи.
Хм... наверное, проще показать код:тыц!
Если в 27 строчке файла main.cpp заменить TUSB_Daemon
на TDaemon
, то логи вестись будут (где? - смотрим в файле usb_daemon_conf.h). За ведение логов отвечает функция WriteLog, которая вообще к классу не относится. То же самое относится и к cout в дочернем процессе, даже если STDOUT_FILENO не закрыт.
При этом компиляция проходит успешно. Объясните, пожалста, почему магия наследования не работает?
Доброго времени суток!
Вот код базового класса и класса наследника:
daemon.hpp:
class TDaemon{
protected:
static char ConfigFileName[128];
public:
TDaemon(const char* ConfigName);
~TDaemon(){ };
virtual void DaemonFunction(unsigned int, void*);
};
usb_daemon.hpp:
class TUSB_Daemon : public TDaemon{
private:
public:
void DaemonFunction(unsigned int, void*);
TUSB_Daemon(const char* ConfigName) : TDaemon(ConfigName){};
};
Конструктор TDaemon
определен в файле daemon.cpp
.
Почему линкер выдает такую ошибку?
usb_daemon.o:(.rodata._ZTI11TUSB_Daemon[_ZTI11TUSB_Daemon]+0x10): undefined reference to `typeinfo for TDaemon'
daemon.o: In function `TDaemon::TDaemon(char const*)':
/home/igor/templates/daemon/src/daemon.cpp:235: undefined reference to `vtable for TDaemon'
main.o: In function `TDaemon::~TDaemon()':
/home/igor/templates/daemon/src/daemon.hpp:35: undefined reference to `vtable for TDaemon'
collect2: error: ld returned 1 exit status
Все ж вроде корректно объявлено?
Доброго времени суток!
Собственно, сабж. Загрузочную флэшку уже делаю далеко не первый раз и каждый раз как заново.
Что имеем: USB Flash 3.0, таблица разделов GPT, присутствуют файловые системы FAT32, ext4, NTFS.
Как записывал: пробовал писать на раздел c FAT32 и через Unetbootin, и через dd if=./lubuntu.iso of=/dev/sdb1 bs=512
Что получал: в обоих случаях при загрузке пишет Missing operating system. При подключении флэшки в б-гомерзкую винду, она определяла три раздела, но дико глючила с их типами: FAT32 и ext4 вообще не определила, а NTFS определила как FAT32, и не смогла смонтировать ни один раздел. Таблицу разделов и разбивку диска делал через Gparted.
Из-за чего такие феерические глюки и как оно исправляется?
Доброго времени суток!
Пишу класс для демона, в функционал которого входит обработка различных сигналов, в частности SIGUSR1. Когда посылаю kill 10 PID
, то демон штатно завершается, вместо того, чтобы этот сигнал обработать.
Вот кусок кода, ответственный за обработку этого сигнала:
for (;;)
{
// ждем указанных сообщений
sigwait(&sigset, &signo);
WriteLog("%s [MONITOR] Received signal: %d %d\n", getTime(), signo, SIGUSR1);//для проверки
// если то сообщение обновления конфига
if (signo == SIGUSR1)
{
// обновим конфиг
status = ReloadConfig();
if (status == 0)
{
WriteLog("%s [DAEMON] Reload config failed\n", getTime());
}
else
{
WriteLog("%s [DAEMON] Reload config OK\n", getTime());
}
}
else // если какой-либо другой сигнал, то выйдем из цикла
{
break;
}
}
В логе при этом следующий вывод: 17:58:42 [MONITOR] Received signal: 15 10
Как так получается, что я посылаю 10 сигнал, а демон принимает 15?
Доброго времени суток!
Есть 2 функции:
static char Time[10];
char* getTime()
{ //функция возвращает форматированное время
bzero(Time, 10);
time_t seconds = time(NULL);
tm* timeinfo = localtime(&seconds);
strncpy(Time,asctime(timeinfo)+11,9);
return Time;
}
void WriteLog(const char* str, ...)
{
FILE * lf;
lf=fopen(LOG_FILE,"a");
fprintf(lf, str); //печатаем в файл
fclose(lf);
}
Используются они так: WriteLog("%s [DAEMON] Started, %d\n", getTime(), 125);
А в файл приходит следующее: /*кракозябры*/[DAEMON] Started, 1088
Косяк однозначно в fprintf и использовании функции от нескольких аргументов, но я пока хз, как поправить его.
Доброго времени суток! Собственно, сабж..
Как сделать эту самую кнопку сверху (ну та, которая обычно обозначается на Андроиде с тремя горизонтальными полосками, при нажатии на нее обычно Popup(?)Menu вылазит с опциями разного рода) вместе с заголовком приложения стандартными средствами QT?
Мне на ум приходит только идея в лоб: создать QLabel, QButton, настроить выравнивание и растяжение через политики, но в Android Studio, помнится, есть уже готовый компонент под это дело. А в QT есть?
Возможно ли одновременно подключаться к двум вайфаям? В интернете мнения расходятся кардинально - присутствуют варианты ответов «да», «нет», «можно при наличии двух вайфай-адаптеров», и нигде нет ссылок на то, почему можно или нельзя (например, на соответствующую главу стандартов группы 802.11).
Например, почему ОС не может подключиться сначала к одной сети, запомнить параметры сети, потом к другой, опять запомнить, а дальше принимать решение по какому каналу передавать или посылать пакет? Понимаю, что в таком случае одновременно принимать и посылать пакеты с двух/на две точки становится невозможно (нужна синхронизация), но вроде все должно работать, если последовательно обрабатывать пакеты. Например, если стоит задача делать Download строго с одной сети, а Upload строго в другую. При такой постановке в адаптер вроде не должно одновременно поступать два сигнала и конфликтов тоже быть не должно.
← назад | следующие → |