Как стать автором
Обновить

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

И желательно залитых на habrastorage.org, а то текущий у меня не открывается, блокируется IT-политиками.
..IT-политиками..
Хм, двусмыслено: то ли набор правил, то ли депутаты, лоббирующие законы об интернете…
Хвала байтам, пока что всего лишь первый вариант :)
Надеюсь, второго всё же не случится.
И желательно если скриншот консоли, то там должна быть консоль, а не браузер и панели на более, чем половину площади.
administrator@sirius ~/con/conconky $ make
g++ -o conconky -g -Wall -std=gnu++0x -I./ -L/usr/lib/ conconky.cpp parsers.cpp system.cpp config.cpp
administrator@sirius ~/con/conconky $ ./conconky 
*** stack smashing detected ***: ./conconky terminated
Аварийный останов
administrator@sirius ~/con/conconky $ uname -a
Linux sirius 3.5.0-27-generic #46-Ubuntu SMP Mon Mar 25 19:58:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Не подскажете, в чем проблема?
Это значит что я где-то пытаюсь что-то куда-то записать без проверки границ. Это где-то у меня совсем тупой баг.
Но вы можете попробовать собрать с -fno-stack-protector флагом.
После обновления и компиляции с флагом -fno-stack-protector получаю segfault.
Если у вас есть такая возможность, то пропустите через дебаггер. На тех машинах, к которым у меня есть доступ здесь и сейчас всё хорошо.
Если бедаггер ничего умного не скажет, то попробуйте, эксперимента ради, заменить в конфиге «uname -a» на просто «uname».
Вы уж извините, что нагружаю, но вы единственный «носитель этой заразы» и поэтому мне очень нужна ваша помощь.
Заменил на uname и всё заработало. Спасибо.
Видел похожее в северокорейской Пульгынбёль. Но насколько похоже не понял, ибо на корейском.
int descr = open((*i).c_str() , O_RDWR || O_NOCTTY);

Здесь вместо || надо |?

clang выдаёт ворнинг:
system.cpp:65:48: warning: use of logical '||' with constant operand [-Wconstant-logical-operand]
>надо |?
Да, конечно. Спасибо. Исправил.
В этом и других похожих фрагментах
	std::vector<std::string> lines;

	// Cleaning up comments and voids
	for (auto i = lines.begin(); i != lines.end(); ++i)
	{
		if ((*i)[0] == '#' || (*i)[0] == ' ')
		{
			i = lines.erase(i);
		}
	}

++i нужен только в случае когда lines.erase(i) не был вызван.
Кстати раз уж автор пишет на С++11, то можно было бы написать
    lines.erase(remove_if(lines.begin(), lines.end(),
                          [](const string& s) {return s[0] == '#' || s[0] == ' ';}),
                lines.end());
и не задумываться о том, когда инкрементить итератор, а когда нет.
При первом запуске демон создаст в «хомяке» директорию .conconky

IMO создавать каталог с конфигурацией в $HOME, когда есть $XDG_CONFIG_HOME = ~/.config не есть хорошо. Есть даже такая библиотека, которая исправляет поведение нехороших программ.
Чем меня радует смотреть на такие скриншоты, успокаивается мой внутренний критик, не так у меня все и хреново выглядит.
А если серьезно, скажите мне, как человек, проводящий много времени в консоли, чем удобен выедающий глаза зеленый шрифт?
Тем, что он менее выедающий, чем янтарный и более заметный, чем бело-серый.
А вообще у меня уже такое зрение, что мне абсолютно всё равно.
Никогда не понимал эстетов, кричащих о ШГ, «радуге» и прочих неведомых мне тонкостях.
Ну просто работая с чем-то постоянно, казалось бы не должно быть места «всё равно», это все равно что оправдывать сидение на неудобном стуле тем что уже позвоночник и так кривее некуда. Ну да хозяин-барин.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории