Page 1 of 1

IPC и документация

Posted: Sun Mar 01, 2009 8:42 pm
by vkos
http://kolibrios.org/?p=Documentation&s ... ons&sfp=60
Формат IPC-буфера:

* +0: dword: если здесь не 0, то буфер считается заблокированным; блокируйте/разблокируйте буфер, когда вы с ним активно работаете и вам надо, чтобы извне не изменялись данные буфера (не поступали новые сообщения)
* +4: dword: занято места в буфере (в байтах)
* +8: первое сообщение
* +8+n: второе сообщение
* ...

Формат сообщения:

* +0: dword: PID процесса/потока, пославшего сообщение
* +4: dword: длина сообщения (не считая этот заголовок)
* +8: n*byte: данные сообщения
Попробовав написать исходя из этой документации, получил полную фигню. Посмотрев в MTDBG, увидел, что первое сообщение записывается прямо в буффер, а не в +8. Так что надо бы поправить доку (и sysfuncr.txt тоже).

Re: IPC и документация

Posted: Sun Mar 01, 2009 11:07 pm
by diamond
Документация в порядке. Пример использования есть в приложении ipc, которое на svn почему-то запихнули в network (в исходниках дистра оно в develop/examples).
Ну а подобную претензию я уже слышал вот здесь, а мой ответ можно прочитать, посмотрев немного ниже.

Re: IPC и документация

Posted: Mon Mar 02, 2009 10:38 am
by tsdima
Я тоже на этом попадался :) Поле "занято места в буфере" нужно было инициализировать числом 8. Неплохо бы указать в качестве примера в документации.

Re: IPC и документация

Posted: Mon Mar 02, 2009 2:37 pm
by bw
> Я тоже на этом попадался :)
Пора свой клуб создавать :-).

..bw