Мне в процессе работы программы необходимо прочитать файл размером
порядка 2 гб, а потом записать в другой файл. Читаю и пишу я через
stdio блоками по 100 байт. Секундомер показал что примерно половину
времени я трачу на работу с диском. Можно ли уменьшить время
ввода-вывода увеличив размер читаемого(записываемого) блока?
Подскажите, как можно в консольном приложении использовать классы QT требующие наличия цикла обработки сообщений. В частности меня интересует использование QSocket.
Кто-нибудь знает - существует ли перевод GCC-FrontEnd-HOWTO на русском языке?
Я знаю что есть книга на русском языке "Компилятор GCC", в которую включено если не само HOWTO, то много информации из него. Hо хочется получить информацию в электронном виде и бесплатно.
У меня в функции обрбатывается switch с несколькими десятками вариантов (а возможно количество вариантов вырастет до нескольких сотен). Сама функция вызывается в бесконечном цикле. Проще говоря я пытаюсь реализовать примитивный интерпретатор байт-кода. В связи с этим появился вопрос - а насколько эффективным будет такой большой switch и есть ли какие-нибудь методы его оптимизации.
Господа, кто-нибудь может рассказать что означают эти ошибки при сборке c поощью gcc-3.2.2:
app/libapp.a(metadatatree.o)(.text+0xa8): In function `CMetadataTree::CMetadataTree[not-in-charge]()':
/home/vinick/work/1L/w1xl/src/app/metadatatree.cpp:75: undefined reference to `vtable for CMetadataTree'
app/libapp.a(metadatatree.o)(.text+0x26e): In function `CMetadataTree::CMetadataTree[in-charge]()':
/home/vinick/work/1L/w1xl/src/app/metadatatree.cpp:75: undefined reference to `vtable for CMetadataTree'
app/libapp.a(metadatatree.o)(.text+0x425): In function `CMetadataTree::~CMetadataTree [not-in-charge]()':
/home/vinick/work/1L/w1xl/src/app/metadatatree.cpp:94: undefined reference to `vtable for CMetadataTree'
что такое undefined reference я знаю, но вот что значит vtable, [in-charge], [not-in-charge] и т.д.... и как с этим боротсься
Подскажите где можно найти рабочий flex с наложенным Unicode-патчем?
я нашел только отдельно патч и отдельно flex-2.5.4, но flex после сборки
с ним генерирует совершенно некомпилируемый код, я и это вроде
подравил, но прога стала вываливатся по SIGSEGV и мое терпение
кончилось.
я тут установил пару rpm'ок с rpmfind.net. у меня стоит rh8.0 а пакеты были от мандрэйка. и теперь я вобще ничего не могу сделать с rpm, ни rpm -i, ни rpm -q не работают. люди скажите, что произошло и как мне можно востановить систему да и можно ли вообще.
как можно определить в каком пакете из дистрибутивной поставки, находиться определенный файл, если он вообще там есть.
а то попытался установить fwbuilder из rpm, он потребовал libgdkmm.1.2.so.1, нутром чую - должен быть, но вот где, я не знаю. должно же быть какое-нибудь средство для таких случаев.
При ззагрузке появляются такие сообщения:
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: error=0x84 {DriveStatusError BadCRC}
в дальнейшем загрука и работа проходят без видимых проблем.
Но все-таки страшно. вдруг в один прекарсный момент все порушиться.
система RH8.0 ядро из дистрибутива - 2.4.18-14.
кто-нибудь знает что это за сообщения?
Сейчас на машине c виндами установлен T-mail, у него в subst.lst прописан список адресов клиентов и для каждого адреса установлен параметр BOX, клиент через свой T-mail звонит на мою машину, забирает файлы из BOX и присылает файло в каталог прописанный в Inbound. Я хочу перевести свою машину с T-mail под Linux,но не знаю с помощью каких средств в Linux можно реализовать такую схему, чтобы для клиентов это произошло незаметно. Помогите мне пожалуйста.
при архивировании файла arj'ем под Linux и последующей распаковке архива под виндами, содержимое архива получает совершенно непотребную дату модификации - типа 20.11.58. Подскажите из-за чего такое может происходить?
Хочу реализовать что-то вроде механизма плагинов, пока не динамически
подключаемых. Каждый плагин представляет собой класс имеющий метод
run() внутри которого и будет выполняться полезная работа. Проблема в
том что при запуске надо инициализировать GUI, т.е сообщить ему(ей)
какие плагины в данный момент существуют, при этом сами объекты
классов, реализующих плагины, еще не созданы.
Для этого придумал такую конструкцию :
class AbstractPlugin
{
public:
virtual void run()=0;
virtual string initGUI()=0;
};
class PluginCtor
{
public:
virtual AbstractPlugin * create()=0;
virtual void registerPlugin()=0;
};
class PluginManager
{
friend class PluginCtor;
public:
static vector<PluginCtor *> * theCtors;
};
#define CREATECTOR(name) \
class Ctor##name : public PluginCtor { \
public: \
AbstractPlugin * create() { return new (##name)();} \
void registerPlugin() {PluginManager::theCtors->push_back(this);} \
Ctor##name() {registerPlugin();} \
}; \
static Ctor##name Ctor##name##_var;
class RealPlugin : public AbstractPlugin
{
public:
void run();
string initGUI();
};
Здесь все классы-плагины должны быть потомками AbstractPlugin, и в
файле с реализацией (*.cpp) вызывать макрос CREATECTOR() со своим
именем в качестве параметра. А дальше в main() я пробегаю по массиву
theCtors, создаю объект через create(), вызываю initGUI() и сразу же
уничтожаю.
А вопрос такой : как все это можно реализовать средствами С++ проще, по возможности без использования статических переменных(static Ctor##name Ctor##name##_var;), а лучше вообще без макросов. Может кто-нибудь уже делал что-то подобное?