Про OldLinux

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Аватара пользователя
qivi
энтузиаст
Сообщения: 703
Зарегистрирован: 19.01.2009 12:45:54
Откуда: Россия

Про OldLinux

Сообщение qivi »

Я тут по поиску прылся... этого модуля больше не существует? А чем его заменить если программа которую я пытаюсь откомпилировать так и обращается к нему OldLinux.итд?

И ещё один совсем дурацкий вопрос..., а чем этот модуль занимается?

Добавлено спустя 13 часов 17 минут:
Как вот эту строчку:

Код: Выделить всё

OldLinux.GetTime(Result.Hour,Result.Minute,Result.Second,Result.MS);

отвязать от модуля OldLinux (он же вроде больше не поддерживается)? На основе какого модуля это можно сделать?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Он просто больше не компилируется вместе с остальной RTL. Модуль представляет собой братскую могилу всего, что связано вызовами ядра linux. Сейчас его функциональность разнесена по нескольким модулям, в основном UnixType и BaseUnix. Linux-специфичные вызовы находятся, как ни странно, в модуле linux.
Если программа нуждается в OldLinux, самое простое - вытащить его из исходников rtl и положить туда, где компилятор его найдет.
Аватара пользователя
qivi
энтузиаст
Сообщения: 703
Зарегистрирован: 19.01.2009 12:45:54
Откуда: Россия

Сообщение qivi »

Sergei I. Gorelkin писал(а):Если программа нуждается в OldLinux, самое простое - вытащить его из исходников rtl и положить туда, где компилятор его найдет.

Есле это возможно, хотелосьбы более дальновидное решение, чем (каким аналогом) можно заменить эту строку из "живых модулей"?

Сейчас проверил... единственная строчка на 89 модулей нуждаюаяся "могильном модуле"!
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Можно смело менять на UnixType и BaseUnix. Дальше, если чего-то не хватает - ищем по исходникам rtl, где оно, кроме OldLinux, встречается. Тут возможно, что будет встречаться в .inc файле, и придется определять, в какой из модулей этот .inc на самом деле включается.

Как показывает поиск, аналог OldLinux.GetTime(Result.Hour,Result.Minute,Result.Second,Result.MS); теперь находится в sysutils.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

qivi
А Вы отвязывайтесь от конкретной ОС. Есть универсальный модуль SysUtils, берите время там. Преимущества очевидны:
- работает в любой ОС,
- универсальный тип даты-времени, который удобно преобразовывать в разные типы, например в строку для вывода на экран.

Добавлено спустя 3 минуты 57 секунд:
Конкретно для Вашего случая:

Код: Выделить всё

DecodeTime(Now, Result.Hour, Result.Minute, Result.Second, Result.MS);
Аватара пользователя
qivi
энтузиаст
Сообщения: 703
Зарегистрирован: 19.01.2009 12:45:54
Откуда: Россия

Сообщение qivi »

Спасибо, покрайне мере с этой проблемой разобрался...
sashafedorov82
незнакомец
Сообщения: 4
Зарегистрирован: 15.06.2011 20:51:44

Сообщение sashafedorov82 »

Подскажите а где взять функцию fdopen
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

sashafedorov82
А чем функция FpOpen() не устраивает?
sashafedorov82
незнакомец
Сообщения: 4
Зарегистрирован: 15.06.2011 20:51:44

Сообщение sashafedorov82 »

Если fpopen аналог fdopen то устроит
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

sashafedorov82
Я так понял, Вы справочную документацию по FreePascal читать категорически не хотите? ;)
Ответить