проблема с select

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

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

проблема с select

Сообщение sacredphoenix » 17.03.2009 12:07:29

у меня free pascal 2.2.2 для linux amd64 и очень простая проблема: в каком модуле здесь лежат структуры fdset и процедуры FD_SET FD_ZERO и т.п. а также функция select? заранее спасибо
sacredphoenix
незнакомец
 
Сообщения: 3
Зарегистрирован: 17.03.2009 11:59:16

Re: проблема с select

Сообщение Logo » 17.03.2009 13:02:03

Я не совсем уловил о чем идет речь, но видимо Вам нужен модуль "baseunix", только там структура приведена к паскалевскому виду TFDSet. К системным функциям, аналогам Си, -спереди добавлена приставка "fp" - fpFD_ZERO, fpFD_Clr, fpFD_Set, fpFD_IsSet. Функция Select - fpSelect. Если нужно найти аналог Си, то ищите его именно с приствкой "fp" в модуле baseunix. В типах и других модулях (unix, linux, oldlinux), без "fp". В Sockets - некоторые с "fp", а некоторые приведены к паскалевскому виду и без приставки, но не все работают, а если работают, то гораздо быстрее системных, короче, нужно пробовать, я уже не помню что и как. Все функции с приставкой "fp" работают.

Добавлено спустя 19 минут 37 секунд:
Еще одно забыл, - модуль "libс". он не во всех версиях фрипаскаля скомпилирован. Приходится заходить в исходники ~/fpc-2.2.x/packages/libc и делать make. Потом вручную перенести полученные модули в каталог с модулями, например: /usr/local/lib/fpc/2.2.3/units/x86_64-linux
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: проблема с select

Сообщение sacredphoenix » 17.03.2009 23:30:23

спасибо, именно это мне и нужно было, эти функции есть но с приставкой fp. Все же мне не очень понятно почему не все функции сохранены в исходном виде хотя бы ради совместимости. Попробую скомпилировать вручную, может там они будут
sacredphoenix
незнакомец
 
Сообщения: 3
Зарегистрирован: 17.03.2009 11:59:16

Re: проблема с select

Сообщение sacredphoenix » 20.03.2009 22:10:04

libc норм скомпилировался, в нем есть все что нужно но почему-то когда его переношу в каталог с модулями то компилятор его не видит, а держать его в папке с проектом как-то не очень удобно. Что я делаю не так?
sacredphoenix
незнакомец
 
Сообщения: 3
Зарегистрирован: 17.03.2009 11:59:16

Re: проблема с select

Сообщение Logo » 21.03.2009 03:26:10

Пропишите путь к каталогу с модулями в файле fpc.cfg. Обычно этот файл находится в: /etc/fpc.cfg
Но может быть ситуация, что он находится в домашнем каталоге, или в каталоге с проектом.

В файле, по умолчанию, есть (должны быть) пути к модулям:
# searchpath for units and other system dependent things
-Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget
-Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/rtl
-Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/*
Нижняя строка подразумевает, что поиск будет проходить во всех каталогах, находящихся в каталоге для модулей, но если не срабатывает, то пропишите отдельно полностью путь к модулям, например:
-Fu/usr/local/lib/fpc/2.2.2/units/x86_64-linux/libc
Туда же и скопируйте модули.
Можно еще так:
-Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/libc

Проверьте, где находятся файлы fpc.cfg. Основной должен быть в каталоге /etc, его перекрывает файл в домашнем каталоге, здесь он может быть с точкой спереди(скрытый), ну и в каталоге проекта, - перекрывает все предыдущие: /etc/fpc.cfg и /home/*/fpc.cfg

Достаточно иметь /etc/fpc.cfg
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru