Использую в своих целях flex для генерации лексера.
Однако, как выяснилось позже, нужно чтобы лексер мог работать с несколькими потоками. Посмотрев генерируемый flexом код, понял, что он не "thread safe" - используются глобальные переменные.
Поиск в google не дал достойной замены flexу. М.б. ктото уже решал
подобную проблему?
----------
скомпилированный g++ 3.3.2 и запущенный выдает:
Aborted, т.е catch(...) не отрабатывает.
Естественно, любыми другими компиляторами
(имеющимися у меня в наличии gcc 2.96, 3.2, bcb)
выдает "ok".
Вопрос:
может как то поменялись стандарты (а я не уследил)
или нужно давать какие то опции при компиляции...
(Опции оптимизации -O никак не влияют.)
PS: Может просто кривая сборка (имидж с uclibs):
Reading specs from /usr/lib/gcc-lib/i386-linux/3.3.2/specs Configured with: ./configure --verbose --target=i386-linux --host=i386-linux --build=i686-pc-linux-gnu --prefix=/usr --mandir=/usr/man --infodir=/usr/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-target-optspace --enable-shared --enable-multilib --disable-nls --with-gnu-ld --disable-__cxa_atexit --enable-languages=c,c++
Thread model: posix
gcc version 3.3.2
Подскажите, как проще всего определить откуда запустился мой файл (Нужно открыть его на чтение и считать кой какие данные).
В argv[0] я вижу просто фрагмент командной строки:
1 myfile
2 ../bin/myfile
3 /usr/bin/myfile
В первом случае мне нужно пройти по всем каталогам PATH и найти его ?
Есть ли стандартные средства POSIX, UNIX ?
Встала передо задача:
пересадить свою систему на промышленный PC: 486 100 Mhz, RAM - 16 Mb, LCD monitor, Flash disk (R/O). Система пишется под Linux.
Может ли кто поделиться опытом: будет ли нормально работать X на таком железе (все таки не хочется работать в текстовых окнах) . X я заставил работать с разрешением 600x480 и ниже (правда пока с подкачкой на HD).
Стоит ли ориентироватся на другие библиотеки типа PicoGUI, MicroWindows ?
(Не хотелось бы, т.к. уже много написано под FLTK.)