The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Переносимость программ"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Переносимость программ"
Сообщение от Vlad2003 emailИскать по авторуВ закладки on 21-Июл-03, 01:20  (MSK)
Доброго все времени суток!
Народ, кто что может сказать по поводу переносимотси программ, написанных на С (Перл), и наличия (отсутствия, совместимости и т.д.) библиотек. Системы: *BSD и Linux. Заранее благодарен.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Переносимость программ"
Сообщение от asso Искать по авторуВ закладки on 21-Июл-03, 12:24  (MSK)
Что касается Си, то все просто: прежде чем использовать какую-нибудь фнукцию, читай в man'е раздел CONFORMING TO.  Если функция соответствует стандартам, то смело ее используй. Между Linux и FreeBSD совместимость неплохая. Обычно мои программы под Linux с минимальными телодвижениями начинали работать и в OpenBSD.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Переносимость программ"
Сообщение от Vlad2003 emailИскать по авторуВ закладки on 21-Июл-03, 14:37  (MSK)
А по подробнее можно: кто с какими проблемами столкнулся, может какие функции по разному себя ведут в разных ОС, может какие-то библиотеки нужные присутствуют/остутствуют в этих ОС.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Переносимость программ"
Сообщение от asso Искать по авторуВ закладки on 21-Июл-03, 18:31  (MSK)
В Linux и BSD немного по-разному ведут себя сигналы в многопоточных программах.  В одном случае сигнал приходит одному потоку, в другом сразу всем.  Многопоточные программы по-разному собираются, в BSD используется специальный ключ для компилятора, а в Linux просто надо линковаться с pthread.  Менеджеры памяти устроены по-разному, из-за чего баги при работе с памятью могут не проявляться в одной ОС, но вылезти в другой (valgrind тебе поможет).  iconv в Linux входит в libc, а в FreeBSD это отдельная библиотека.  dlopen и ко в Linux находятся в библиотеке dl, а в FreeBSD они внутри libc.  В Linux libpcap библиотека как библиотека, а в OpenBSD она блокирует все потоки :-E  В Linux всегда стоит GNU make, а в BSD он как правило не стоит, надо либо требовать от пользователей везде использовать GNU make, либо не пользоваться специфичными для GNU make фичами.

Короче, всего не упомнить.  Просто надо внимательно читать маны и пробовать свою программу на всех системах.  Добится переносимости между UNIX'ами не так уж сложно, не то что между UNIX и Windows.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру