Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Nov 12, 2019 10:53 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 186 posts ]  Go to page Previous 17 8 9 10 1113 Next
Author Message
PostPosted: Sat Feb 09, 2013 2:55 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Недавно поднималась тема расширения стандартного заголовка для поддержки потоков stdio и stderr. Albom, что думаешь по этому поводу? Возможно, стоит в этом направлении тоже посмотреть?


Top
   
PostPosted: Sat Feb 09, 2013 8:35 pm 
Offline

Joined: Fri Feb 18, 2011 3:13 pm
Posts: 201
SoUrcerer wrote:
Недавно поднималась тема расширения стандартного заголовка для поддержки потоков stdio и stderr. Albom, что думаешь по этому поводу? Возможно, стоит в этом направлении тоже посмотреть?


Я уже почти сделал этого - только надо протестировать немножко. Но будет работать только с новым сетевым стеком от hidnplayr.


Top
   
PostPosted: Sat Feb 09, 2013 11:10 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
SoUrcerer wrote:
Недавно поднималась тема расширения стандартного заголовка для поддержки потоков stdio и stderr. Albom, что думаешь по этому поводу? Возможно, стоит в этом направлении тоже посмотреть?

Дело нужное. И если будет хорошая документация, то можно внедрить в shell.


Top
   
PostPosted: Sat Feb 09, 2013 11:30 pm 
Offline

Joined: Fri Feb 18, 2011 3:13 pm
Posts: 201
Albom wrote:
Дело нужное. И если будет хорошая документация, то можно внедрить в shell.


Документация будет. Но все там очень просто. В конечном счете реализировал вот так.

Программа-консоль, используя SocketPair выделяет два IPC сокета - первый, передает приложению через заголовке, а на вторым слушает/говорит сама.

Программа-консоль может делать с принятой информацией чего захочет - отображать на екране, записать в файл, посылать через HTTP, клиенту и т.д.


Top
   
PostPosted: Sun Feb 10, 2013 3:59 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Как некоторый шаг к допиливанию существующей программы cp - файлик с функциями общения с shell и пример его использования.
Реализовал пока не все функции и если программа запущена не из shell, то она виснет (необходима доработка _sc_init).
Работа продолжается.


Attachments:
test_asm.zip [4.01 KiB]
Downloaded 103 times
Top
   
PostPosted: Wed Feb 13, 2013 12:03 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5064
Очень-очень-очень прошу сделать поддержку относительных путей в скриптах. Ну очень надо. Что-то вроде

# install.sh
cp ./file1 /sys/file2
./dir1/file2

_________________
Через тернии к звездам


Top
   
PostPosted: Thu Feb 14, 2013 4:01 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Пока положу здесь.


Leency wrote:
Очень-очень-очень прошу сделать поддержку относительных путей в скриптах. Ну очень надо. Что-то вроде

Когда-то обязательно будет реализовано.


Top
   
PostPosted: Thu Feb 14, 2013 4:08 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5064
Albom
Очень надо уже сейчас. :oops:

_________________
Через тернии к звездам


Top
   
PostPosted: Sat Feb 16, 2013 2:27 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Shell 0.6 // 16.02.2013

+ Добавлена возможность запускать программы, имена которых или путь к которым содержат пробелы. Имя программы (возможно с путём к ней) для этого необходимо заключать в кавычки. Т.е. наконец-то можно запустить программу из /rd/1/File managers, не переходя в неё
+ Добавлена функция разделения строковой переменной на int argc, char* argv[], что означает возможность улучшения команд (обработка нескольких параметров)
+ Добавлена команда cp (копирование файла). Принимает обязательно два параметра - имя файла-источника и имя файла-результата. Имена могут быть краткими (в текущем каталоге), так и с полным путём (должны начинаться с /). Ограничение на размер файла - 4 Гбайта
* Исправлена кодировка в сообщении об ошибке в консольном приложении
* Клавиши истории (вверх и вниз) поменяны между собой
* Количество команд в истории увеличено с пяти до десяти
* Уменьшено количество предупреждений при компиляции
* Команда ccpuid преобразована в параметр cpu команды ver
* Исправления в пакетных файлах сборки
+ Добавлен пример консольного приложения на ассемблере и пакетный файл для его сборки


Top
   
PostPosted: Sat Feb 16, 2013 3:34 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
А что насчет внутренних мини-команд? У них есть свой argc/argv? Они возвращают сообщения об ошибках?


Top
   
PostPosted: Sat Feb 16, 2013 4:57 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5064
Клёво, это ещё один шаг вперёд. Мне очень нужно, чтобы комманды работали относительно пути запущенного скрипта.
Запускаем /bd0/4/programs/install.sh, в нём строка

cp file1 /sys/file2 #копирует из /bd0/4/programs/file1 в /sys/file2

_________________
Через тернии к звездам


Top
   
PostPosted: Sat Feb 16, 2013 8:57 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
SoUrcerer wrote:
А что насчет внутренних мини-команд? У них есть свой argc/argv? Они возвращают сообщения об ошибках?

За разбор параметров отвечает функция
Code:
int parameters_prepare(char *param, char* argv[]);

Её при необходимости можно вызывать из любой мини-команды. На вход всех мини-команд подаётся char *param. Мини-команды возвращают либо TRUE, либо FALSE, но результат по сути никак не обрабатывается.

Leency wrote:
Мне очень нужно, чтобы команды работали относительно пути запущенного скрипта.

А что, не работает? Если нет, то, думаю, добавить такую возможность не сложно.

+Ещё. Теперь в параметрах проблема с кавычками - передать параметр с ними пока нельзя (например, в новом mp3-плеере).


Top
   
PostPosted: Sat Feb 16, 2013 10:39 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Нужно добавить символы экранирования - \', \" и \[пробел]. Тогда проблем будет меньше.
Меня очень печалит, что я не вижу информации об ошибках. Например, иногда я делаю по ошибке опечатку - вместо cd /bd0/1/bin-i386 набираю cd /bd0/2/bin-i386
Пока я не убеждаюсь, что по-прежнему нахожусь в той же папке, где и был, командой ls - я не знаю, что опечатался. Стоит выводить в таком случае ошибку.


Top
   
PostPosted: Sat Feb 16, 2013 11:13 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
1) Постараюсь добавить хоть простую обработку ошибок
2) Текущую директорию можно узнать по команде pwd

Обнаружил, что копирование работает недостаточно надёжно. Буду работать над 0.6.1...


Top
   
PostPosted: Sun Feb 17, 2013 5:07 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Кто-нибудь подскажет, как проверить объём свободного пространства на диске ДО копирования файла?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 186 posts ]  Go to page Previous 17 8 9 10 1113 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited