Re: libpthreads,libmpeg3 -> windows

From
Vladimir N. Oleynik ()
To
Boris Rudakov ()
Date
2003-06-17T18:33:26Z
Area
CARBON.COPY
 * Forwarded from area 'RU.UNIX.PROG'
From: "Vladimir N. Oleynik" <dzo@simtreas.ru>

Здарофъ, Boris


>  >> Потому я и говорю: НЕ ИСПОЛЬЗУЙ эмулиционную часть CLib и делай
>  >> полный качественный порт. И делай его РОДНЫМ компайлером, там хоть
>  >> отследить обманки легче...
> 
>  VI> Просто интересно: stdio (fopen, fprintf, etc...) в твоём понимании
>  VI> тоже эмуляционная часть ?
> 
> ХА ! "В моем понимании" !
> Ты в RTL посмотри, как они сделаны !!!

Ну чего вы так раскричались?
Если некий продукт предназначен для разработки на C/C++, он обязан
иметь libc. Если оно криво - значить крив продукт. Один компилятор -
это только компилятор.

> 1. Все виндозные RTL ВЫНУЖДЕНЫ не использовать напрямую хэндлы (дескрипторы, в
> вашей терминилогии) реальных файлов. Виновны: функция stat (информацию в том
> виде, в котором она должна быть представлена, в винде получить невозможно) и

вы про fstat? И stat и fstat это сискол. Прекрасно эмулирующийся в DOS
по get_fcb() и ничего ужасного.

> несколько аналогичных. Плюс - принципиально разные коды различных флагов, типа

Коды на то и имеют символические имена...

> O_READ или же полное отсутствие других - O_BINARY. Итог - все RTL ведут
> внутренние массивы структур, в которых лежат реальные хендлы файлов и
> дополнительная информация для поддержки непреодолимых другими способами отличий
> API. Если ты откроешь (получишь извне) файл средствами API, ты никогда не

Смешение уровня никогда и нигде не дает хороших результатов.
Когда я говорю close(2), то fclose(stderr) тоже не вызывается. И что?

> сможешь его юзать средствами эмуляционного-юниксоидного слоя CLib. Для
> некоторых ситуаций предусмотрены средства включения новых хендлов во внутренние
> структуры RTL, но во всех компайлерах они разные.

Компайлерах?

> ЗЫЫ: И виноваты в этом засранстве, как ни странно, именно юниксоиды, требующие
> наличия определенных функций в составе стандартизированного CLib. А они
> полноценно - НЕРЕАЛИЗУЕМЫ. Сделать-то их сделали, но только для ЧАСТНЫХ СЛУЧАЕВ
> использования. Вот и получайте головняк при порте :)

Ну вы же понимаете (наверное), то табличка
Функция|Полноценная поддержка|
входит в доку по системе разрабоки, но настоящая правда
о часных случаев уже от комунити.

> таких простых и привычных вещах... Казалось бы - что может быть проще errno и
> stdout ?! А их НЕТУ ! Есть - обманки, работающие только в определенных частных
> случаях...

Голосуйте доларом :)

> ЗЫЫЫ: Но вот зато кроссплатформенные класс-либы нового поколения, рассчитанные
> И на современные юниксы И на НТю И на всякую экзотику типа QNx - действительно
> красивы и хорошо продуманы. API-то операционок похожи и результаты
> систематизации как сходств, так и отличий дают красивейшие обобщения. От
> CommonC++, j2k и нескольких аналогичных либ поменьше меня просто прет ! Их код
> действительно КРАСИВ и очень тонко нивелирует разницу систем, оперируя с
> родными API. Дас из фантастиш...

Так чего же вы на mingw/cygwin бочку катите? Молодой и бесплатный продукт.
Как могут так и делают.



--w
vodz

--- ifmail v.2.15dev5
 * Origin: Ulyanovsk Treasury (2:5020/400)