Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт мар 24, 2017 5:09 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 14 сообщений ] 
Автор Сообщение
СообщениеДобавлено: Пт июл 09, 2010 12:52 pm 
В связи с предстоящим капитальным переписыванием KFM (Kolibri File Manager - если кто не знает, то его уши торчат из OpenDialog и Box_Lib, компонента FileBrowser соответственно) я планирую если не все операции с дисковой подсистемой, то хотя бы опции копирования переместить в такую библиотеку. Зачем по идее понятно - чтобы авторы всех других программы, которым позарез нужно скопировать файл или папку, не мучались изобретая свои велосипеды. Процедура будет настраиваемой, чтобы не было проблем с монопольным захватом файловых устройств на долгое время и нехваткой оперативной памяти или ее избыточным использованием как в случае с KFM сейчас (это ускоряет копирование, но ухудшает время отклика и монопольно захватывает дисковое устройство на длительное время). При использовании обращения всех программ в системе через эту библиотеку (разумеется их придется подкорректировать) можно получить более лучшее квази-параллельное распределение обращений к дисковой подсистеме, чем это есть сейчас - при этом переписывание ядра не потребуется.

Если у кого-нибудь есть более лучшие идеи (реальные, а не фантастические) и\или дополнения - готов их выслушать и учесть.


Вернуться к началу
   
СообщениеДобавлено: Пт июл 09, 2010 1:54 pm 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Вт янв 15, 2008 11:27 am
Сообщения: 750
если возможно и рационально реализовать именно в этой библиотеке, то не помешали бы стандартные ф-ции ввода/вывода Си (fopen, fclose, fprintf, ...). можете считать это хотелкой...


Вернуться к началу
СообщениеДобавлено: Пт июл 09, 2010 2:05 pm 
Дело в том, что я не знаком с функциями, которые в Си - если есть подробное разжеванное описание, то можно учесть пожелание. Библиотека будет подключаться и вызываться подобно Box_Lib, так что проблем с использованием в ЯВУ не должно быть по идее. В самом ядре Колибри по идее нет такого явления как открыть и закрыть файл.

З.Ы. Хотелки именно в таком ключе высказывать вполне правильно.


Вернуться к началу
   
СообщениеДобавлено: Пт июл 09, 2010 9:07 pm 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Вт янв 15, 2008 11:27 am
Сообщения: 750
Оказалось, что толковых статей (на русском языке) по этой теме не так уж и много. Вот несколько, с которыми ИМХО следует ознакомиться...
http://www.borland-academy.ru/courses/c ... 03.03.html
http://ru.wikipedia.org/wiki/Файловый_ввод/вывод_в_языке_Си
http://ru.wikipedia.org/wiki/Stdio.h
http://mymanual.narod.ru/programmist/cp ... gl_4_1.htm

Структура FILE описана следующим образом (взято отсюда http://tigcc.ticalc.org/doc/stdio.html):
Код:
typedef struct {    char *fpos; /* Current position of file pointer (absolute address) */
void *base; /* Pointer to the base of the file */
unsigned short handle; /* File handle */
short flags; /* Flags (see FileFlags) */
short unget; /* 1-byte buffer for ungetc (b15=1 if non-empty) */
unsigned long alloc; /* Number of currently allocated bytes for the file */
unsigned short buffincrement; /* Number of bytes allocated at once */
} FILE;



Функция fprintf подобна printf из console.obj. Описание:
http://ru.wikipedia.org/wiki/Printf


Вернуться к началу
СообщениеДобавлено: Чт июл 22, 2010 5:34 am 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 690
Есть предложение добавить твои функции в libio вместо создания новой библиотеки. Больше по существу пока что ничего.

_________________
in code we trust


Вернуться к началу
СообщениеДобавлено: Чт июл 22, 2010 6:13 am 
Предложение интересное, но есть пара моментов которые меня не воодушевляют. Во-первых, документации даже пользовательской нет (исходники типа Тинипада - не самая понятная документация, помнится я очень долго разбирался с libini), во-вторых стиль кода очень сильно отличается, что опять же затрудняет мое понимание. Я подумаю, спасибо за предложение.


Вернуться к началу
   
СообщениеДобавлено: Пт июл 23, 2010 7:26 am 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 690
Набросал немного документации по libio. Пока что только на английском, так как легче (практически вся информация взята из комментариев в исходном коде, которые таки на английском). Лежит тут: http://wiki.kolibrios.org/wiki/Libs-dev.

_________________
in code we trust


Вернуться к началу
СообщениеДобавлено: Пт июл 23, 2010 10:45 am 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Вт янв 15, 2008 11:27 am
Сообщения: 750
Извините за нескромный вопрос (да, я ленивый человек и в коде мне лазить неохота), но:
- А функции библиотеки libio типа stdcall? Или параметры передаются через регистры?


Вернуться к началу
СообщениеДобавлено: Пт июл 23, 2010 12:11 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 690
Они stdcall. Из описаний видно, что используется макрос proc, а в конце статьи есть пример.

_________________
in code we trust


Вернуться к началу
СообщениеДобавлено: Пт июл 23, 2010 2:55 pm 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Вт янв 15, 2008 11:27 am
Сообщения: 750
спасибо. до конца-то я и не дочитал :) а насчёт proc я мог и ошибаться.


Вернуться к началу
СообщениеДобавлено: Сб июл 24, 2010 1:03 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 690
Подправил немного документацию, перевёл на русский. Читайте на здоровье :)

_________________
in code we trust


Вернуться к началу
СообщениеДобавлено: Сб июл 24, 2010 7:51 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 971
Давно ждал документацию. Во многом разобрался сам (на исходниках), но это же не дело, когда для использования библиотеки нужно разбираться в её исходниках. Теперь прикладникам будет легче писать программы. Спасибо Майк!


Вернуться к началу
СообщениеДобавлено: Вс июл 25, 2010 9:45 am 
mike.dld
Спасибо.


Вернуться к началу
   
СообщениеДобавлено: Вс июл 25, 2010 10:27 am 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Вт янв 15, 2008 11:27 am
Сообщения: 750
mike.dld
Спасибо!


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 14 сообщений ] 

Часовой пояс: UTC+03:00


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB