Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Стандартные библиотеки C/C++ и их реализации от Microsoft  (Прочитано 11076 раз)
0 Пользователей и 1 Гость смотрят эту тему.
lightmaker
Участник

ru
Offline Offline

« : 18-02-2008 09:44 » 

Возник вопрос про glib.c. Это стандартная С библиотека, которая используется в Linux, т.е. в Windows используется некая другая стандартная библиотека и они немного отличаются функциональностью. Я правильно все понял?
p.s. Спасибо опять за терпение. Просто хочется не просто написать прогу, а понять максимум.
« Последнее редактирование: 20-02-2008 13:02 от lightmaker » Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #1 : 18-02-2008 10:31 » 

Возник вопрос про glib.c. Это стандартная С библиотека, которая используется в Linux, т.е. в Windows используется некая другая стандартная библиотека и они немного отличаются функциональностью. Я правельно все понял?
p.s. Спасибо опять за терпение. Просто хочется не просто написать прогу, а понять максимум.

типа того. Улыбаюсь одна из тех библиотек о существовании которых можно и не знать Улыбаюсь, считается, что она есть везде
Записан

Странно всё это....
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 18-02-2008 11:09 » 

Я бы немного иначе сказал.

Есть стандартная библиотека C. Потому она и стандартная, что описана в стандарте на язык. Есть ее реализация для Unix-подобных ОС - libc. Существуют различные реализации libc. В libc, помимо стандартного API для С, входит еще ряд API. Есть ее аналог в проекте GNU - glibc. Glibc содержит помимо стандартных (для libc) еще и свои собственные ф-ии (в мануале это указывается). Libc и ее аналоги - норма для Unix-подобных ОС. Большинство ф-ий из нее входят в стандарт POSIX.

Винда же стандартам не следует (типа мы сами себе стандарт) и не имеет совместимости с POSIX (хотя модуль совместимости в природе есть и его обещали в штатной поставке Vista Ultimate). Ряд API стнадартной библиотеки C есть в виндовой runtime-библиотеке, но имена части функций изменены добавлением одного-двух подчеркиваний в начале имени.

Немного поправил.
« Последнее редактирование: 18-02-2008 11:27 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 18-02-2008 11:29 » 

Винда же стандартам не следует (типа мы сами себе стандарт) и не имеет совместимости с POSIX

RXL, Кстати, да. До выхода стандарта ISO на С++ в 2003м, в котором детально описана STL как часть стандарта, похоже, в Microsoft успели именно из таких соображений несколько странно реализовать эту библиотеку. В результате при портировании проекта, выполненного в VS 2003, на Linux, проявились чудеса с несовместимостью использования некоторых функций (кажется, erase для std::map и ещё некоторые), поскольку по стандарту операция должна возвращать, скажем, void, а у MS возвращала итератор (и это использовалось в коде). Так что осторожнее с STL от MS, оно тоже может отличаться не совсем стандартным поведением Улыбаюсь
Записан
lightmaker
Участник

ru
Offline Offline

« Ответ #4 : 18-02-2008 11:40 » 

Всем спасибо за объяснения, разъяснения и направление куда надо:)
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 18-02-2008 11:41 » 

Цитата: RXL
Винда же стандартам не следует (типа мы сами себе стандарт) и не имеет совместимости с POSIX (хотя модуль совместимости в природе есть и его обещали в штатной поставке Vista Ultimate).
Он есть для последних версий ветки NT: NT 4.0/2000/XP/2003. Дальше не знаю.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 18-02-2008 11:50 » new

dimka, подсистема POSIX в NT4 и W2K ущербная - об этом на форуме где-то уже писали. По этому MS выпустили отдельный, не идущий в поставке, модуль подсистемы совместимости с Unix. Не знаю как для более ранних ОС, а для XP и выше он существует.

Год назад у меня на почте лежали ссылки, где у них можно было скачать эти модули, но при перестановке системы я забекапил все, кроме почты и ссылки погибли. Жаль Искать по их сайту совсем не хочется - пустая трата времени. Там же были ссылки на обсуждение. Людям удавалось установить и glibc, и gcc, и прочие программы собрать.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines