Enigma1/2 изнутри - С/С++ программируем !

  • Давайте говорить все же с позиции ЯЗЫКА С/С++


    По Страуструпу -


    + удаление неинициализированого указателя НЕДОПУСТИМО


    А инициализация указателя на структуру в NULL/0 и последующая попытка удаления неверна опять же с позиции языка C/C++, потому как 0 не указывает на реально существующие данные в памяти, что требуют правила языка.


    Если мы говорим о компиляторах, то это их дело, как трактовать исходный текст при компиляции... Кто-то false в 1 ставит, кто-то в -1... Если юниксовому компилятору вроде бы глубоко плевать на различие между флагами "r" и "rb", то языку - нет. Так что, если писать правильно и грамотно с позиций языка, то все должно работать тип-топ независимо от компилятора. А если мы уж равняемся на определенный компилятор, то никаких слов о совместимости кода быть не может.


    кстати, этот код под виндой вызовет ошибку памяти, потому как менеджер памяти в компиляторе VC не различает неинициализированый указатель и нулевой. И поступает правильно.

    Исходный код
    int main()
    {
    int* p = 0;
    delete p;
    return 0;
    }
  • Оффтоп продолжается, хотя, я полагаю, выяснить истину всегда полезно, в т.ч. и для будущего программирования дримбокса :)


    Как себя поведет этот код под виндой очень просто проверить. Нужно просто скомпилять и запустить. Результат налицо. К тому же:


    Цитата

    По словам пользователя AlexXF ...
    Если мы говорим о компиляторах, то это их дело, как трактовать исходный текст при компиляции... Кто-то false в 1 ставит, кто-то в -1... Если юниксовому компилятору вроде бы глубоко плевать на различие между флагами "r" и "rb", то языку - нет. Так что, если писать правильно и грамотно с позиций языка, то все должно работать тип-топ независимо от компилятора. А если мы уж равняемся на определенный компилятор, то никаких слов о совместимости кода быть не может.


    Различие во флагах влияет на поведение С библиотеки. Стандарт языка никак не определяет, что скрывается за флагом "b", это все зависит от реализации. Кстати, если твой конфиг хранится в текстовом файле, то не логичнее ли открывать его безо всякого "b"?

  • Исходники то я нашел. А вот как на счет того чтобы кто-нить дал компилятор для dreambox. Ткните носом в урл плз.

  • CDK тебе нужен.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

  • при вводе
    cvs -d:pserver:anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z9 co -r rel_1_0_0 .
    получаю
    cvs checkout: Updating .
    cvs checkout: failed to create lock directory for `/cvs/tuxbox' (/cvs/tuxbox/#cvs.lock): Permission denied
    cvs checkout: failed to obtain dir lock in repository `/cvs/tuxbox'
    cvs [checkout aborted]: read lock failed - giving up

  • Хоть это не совсем к энигме относится, но скорее сюда...


    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    Вот примерный и неполный перевод:


    ***********************************************
    alexw 04/08/31 12:34:02


    Modified: tuxbox/plugins/tuxtxt tuxtxt.c tuxtxt.h
    Log:
    Top-Text Support, many thanks to Roland Meier

    Changes:
    -- Быстрое отобоажение телетекста (если есть на транспондере), сконирование только после первого вызова конфигурационного меню


    -- TOP-Text
    - Понятное описание цветных навигационных кнопок
    - реорганизация: последний блок, следующая группа (/блок)
    - обзор структуры в разделённом отображении формата 4:3
    - для этого расширено текстовое окно, ТВ-картинка уменьшена и улучшены пропорции


    -- Список фаворитов
    - кнопкой 9 в первую очередь идет ппоследовательный проход списка фаворитов (препрограммировано 100-303, max. 10 записей)
    - кнопкой 0 вызывается предыдущая страница
    - возможность редактирования списков фаворитов в конфигурационном меню (<> выбор, +- перенос, ? показать, OK удалить / добавить текущий)
    - список фаворитов сохраняется для текущего vtxtpid и загружается при старте/смене PID


    -- Прозрачность
    - изменена последовательность: Mute включает сразу ТВ-картинку
    - уменьшена прозрачность в режиме "задний план" (улучшена читабельность)
    - режим отображения ТВ можно покинуть нажав любую кнопку навигации


    -- Standby завершается как Home tuxtxt


    ***********************************************

  • Вопрос не совсем по программированию, но здесь знающие люди, подскажите пожалуйста:
    Собираюсь первый раз прошить новый имидж, буду делать
    eraseall /dev/mtd/0 && cp /var/tmp/new.img /dev/mtd/0,
    (root fs смонтирована на /dev/mtd/0), так вот вопрос, в /var чего-нибудь менять надо,
    или оставить как есть, и просто перегрузиться?

  • Хочу убрать Самбу с IMG полностью .


    Какие либнарики нужно стереть какие Пакеты и где ?

  • У меня получилось, чтобы дримбокс компилял разные линуксовые проги сам для себя!


    Началось с того, что я попробовал скачать и запустить готовые выполняемые файлы с ppc-дистрибутива.
    Мой взгляд упал на [FTP]Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.[/FTP] и, скопировав файлы в подкаталог на винте и выдав должным образом chroot, я смог тихо и спокойно понять, что у меня работают GCC, Perl, Ruby, Python, Tcl, а также полный набор для компиляции на самом дримбоксе.


    Затем оказалось, что mc не запускается в той конфигурации, я тогда пошел скачал SRC распаковал, подал ./configure потом make потом просетупил и все заработало...
    При компиляции пару раз изображение замерзало на пару секунд и потом опять восстанавливалось :)



    Так что вот.


    Надо сразу оговориться: ни в коем случае я не имею в виду утверждать, что такой способ компилить крут, а CDK ацтой.
    А вот для собственной развлекухи я лучше буду компилять напрямую...
    И LIB-ы для нейтрины и энигмы попробую потом использовать.


    Могу интересующимся список файлов (или сами файлы) предоставить.


    PS. А со скачиванием CDK у меня не склалось: там куча файлов нулевой длины, ничего не работает, в общем туго без посторонней помощи...
    PS еще: с toolchain из проекта crossgcc тоже не совсем склалось: цепочка получалась, helloworld.c компилялось, да только все это трудно через кросс-компиляцию, и не все кросс-компилируется без проблем, да и цепочку -скомпили_тут-скопируй-запусти_там- труднее делать...


    --
    и еще, забыл сказать. vim теперь у меня тоже рулит, без всяких "visual mode not implemented...", "undo not implemented" и т.д.

  • Этот пост скопирован из темы про Гидру,т.к. его читают более продвинутые.Если,кто откликнется, буду очень благодарен


    Сегодня решил почистить Дрим.После разных процедур, о котрых далее речи не будет,установил во внутреннюю флэш последний Рудрим,а на ЮСБ Гидру.Поставил полярку и просканировал ту часть неба,которую могу.(см. мою личную подпись).Какого же было мое удивление, когда на Гидре я поймал на 419(!!!!!) каналов меньше.Сразу скажу,что условия сканирования были одинаковые,погода не менялась,разница по времени между сканированиями 70 мин.36.0 и 26.2 вообще не увидел.Что это? Такой удачный satellites.xml? Или такая разница при сканировании из "нутра" дрима и "снаружи"? Головой понимаю, что на чуствительность последний утверждение никак не влияет,но что тогда?
    В связи с вышеизложенным, одна просьба.
    К сожалению, я знаю Линукс так же , как и он меня.Однако, тут на форуме есть ребята потолковее.Может кто может написать маленький скрипт, который мог бы сравнивать результаты сканирования двух имиджей (или двух разных сканирований одного имиджа). Например, загнал два конечных satellites в какую-нибудь оболочку , а он пишет, вот такие-то транспордеры не прописаны.Ручками добил и нормально.
    Самое главное,что при ручном сканировании сам Дрим ,если поставить галку, "только новые" это пишет. Почему-то в автомате это не реализовано. В свое время, обращался к авторам Рудрима с такой просьбой, однако остался неуслышанным. Теперь уже думаю,необязательно это к Дриму цеплять.Пусть будет отдельная програмка.
    .

  • дык сравни эти два sattelites.xml, в чем вопрос?
    Любой более-менее продвинутый редактор умеет это делать, тот же UltraEdit32 к примеру.

  • дык сравни эти два sattelites.xml, в чем вопрос?
    Любой более-менее продвинутый редактор умеет это делать, тот же UltraEdit32 к примеру.


    З.Ы.
    И дело может быть не тольков этих файлах, а в ревизии CVS, с которой скопирован данный конкретный имидж, личных фиксах авторов etc.

  • Вот что-то я не так понимаю, видать, просветите, мужики!


    Вот скачиваю CVS-версию CDK. пробовал и команду
    cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .


    и пробовал также
    cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -r rel_1_0_0 -P .


    В скачаных ветках смотрю на файлы - они вроде как для версии ядра линуха 2.4.x а текущей является 2.6.9
    Содержимое файла ..../cdk/rules-make явствует, что он для версии 2.4.27:
    (там linux;2.4.27-dbox2;linux-2.4.27;linux-2.4.27.tar.bz2:cifs-........)


    Ходил на Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. все вокруг поглядел...


    где ветка 2.6.х ?
    Где компиляется и откуда берется ядро 2.6.x ?

  • к сожалению ее на офф. CVS просто нет, и для того что бы ее туда прикрутить и скомпилировать CDK с новым ядром нужно сильно попатеть.
    :(

  • ... при этом видно, что этот CVS активно коммитится.
    Тогда что получается, активная разработка ведется при 2.4.x и она просто совместима с 2.6.х?


    у меня пока 2.6.5 хорошо работает, жалко и апгрейдить, и даунгрейдить.


    попробую потом проэксперементировать, как будет ругаться дримбокс, когда я его попрошу скомпилить энигму/нейтрину из CDK.