Ошибка “Syntax error: Bad fd number” при вызове функции system c++

При вызове:

Вызывает возврат с ошибкой «Syntax error: Bad fd number»

Та же самая команда, выполненная на прямую в консоли, выполняется без ошибок. ОС FreeBSD. Необходимо записать в файл результат выполнения ipfw pipe list, включая stderr

Как костыль отлавливаю код возврата system. Но не хорошее решениие для меня, т.к. вижу код, но не вижу текста ошибки..

C++ и компиляция проекта используещего mysql под FreeBSD

1290897526_freebsd2Вот она! Рыба моей мечты. Почти 2 дня мучений, чтоб подобрать состав ключей для компиляции!

Порядок включения библиотек в проект:

Как в конечном итоге оказалось, порядок включения, тоже очень важен. В самом верху  iostream, затем обьявляем пространство имен std,  затем все остальные библиотеки. Причем те которые с расширением *.h рекомендуют опускать в самый низ. Причем под Ubuntu компилировалось всё без проблем сразу, и в любом порядке. А вот со FreeBSD ыли вот такие пляски с бубном.

c++ заметки на полях

CPlusPlusКакая боль! Какая боль! Аргентина-Ямайка 5:0..  Ну или по другому: Ежики кололись, плакали но продолжали есть кактусы. Уродский язык C++, что ни говори. Для элементарных для других языков, операций тут тратишь время. Для одного и того же действия, возможны 500тыщ мильонов решений. Большая чать будет работать только при определенных условиях.. Под катом грабли за пару дней. » Читать далее

undefined reference to `mysql_init’ ubuntu

Ошибка возникает при попытке компиляции с++ проектов на Ubuntu 15.4  и Ubuntu 15.10. Есть информация что и на других версиях, начиная с Ubuntu 11.4

Как побороть? Если используем NetBeans, то необходимо прописать следующие ключи запуска компоновщика: -L/usr/lib/x86_64-linux-gnu -lm -lz -lpthread -ldl -lmysqlclient и в свойствах компилятора включить пути: /usr/include/mysql

Т.е. должна получиться картинки вида:

Снимок экрана из 2015-11-17 17-59-41Снимок экрана из 2015-11-17 18-00-11Снимок экрана из 2015-11-17 18-00-36

Программный reset для Arduino Mega

Увы.. Работа Arduino Mega с сетевой картой оказалась не очень стабильной. Время от времени карта «зависает» и спасает только ресет всего устройства. Для того чтобы сделать «reset» есть два пути: 1) Подать на pin reset напряжение 2) Воспользоваться библиотекой /avr/wdt.h
Мы пойдем вторым путем..

#include <avr/wdt.h>

Значения могут быть следующие:

WDTO_15MS
WDTO_30MS
WDTO_60MS
WDTO_120MS
WDTO_250MS
WDTO_500MS
WDTO_1S
WDTO_2S
WDTO_4S
WDTO_8S

,т.е. «назначаем рестарт через столько то времени». Но! Есть еще и возможность успеть сбросить таймер перезапуска : wdt_reset(); или вовсе отменить: wdt_disable();

Используя этот функционал мы например можем сделать следующую логику приложения:

запускаем таймер «ресет через 5 секунд»
запускаем «опасный для зависания код»
если код выполнился — сбрасываем таймер, перезагрузки не будет
если код не выполнился — произойдет автоматическая перезагрузка arduino

1 2 3 4