libraryinfo получает путь и устанавливает главные функции загруженной библиотеки

## Синтаксис

                macros = libraryinfo(libraryname)
                [macros, libpath] = libraryinfo(libraryname)

## Аргументы

libraryname

  строка: имя загруженной библиотеки.

macros

  столбец строк: имена главных функций, принадлежащих библиотеке.

libpath

  строка: путь до файла в библиотеке.

## Описание

Получает имена функций (написанных на языке Scilab), принадлежаних указанной библиотеке, и путь до директории, где хранятся их `*.sci`-файлы и файлы библиотеки. Вспомогательные функции, которые могут следовать за главными функциями в `*.sci`-файлах, являются приватными и не возвращаются.

Только загруженные библиотеки могут быть адресованы с помощью `libraryinfo()`.

### Получение некоторой информации о библиотеки из её дескриптора

`libraryinfo()` работает по литеральному имени библиотеки. В некоторых случаях в наличии может быть только их дескриптор, определённый при загрузке библиотеки. Например, `libraryinfo("iolib")` работает, а `libraryinfo(iolib)` - нет. Как же использовать дескриптор для получения какой-либо информации? Продолжим с примером `iolib`:

- Получение пути: `libpath = string(iolib)(1)`
- Получение вектор-столбца составляющих функций: `functions = string(iolib)(2:$)`
- Получение литерального имени библиотеки: `libraryname = xmlGetValues("//scilablib", "name", libpath)`

### Незагруженная библиотека: получение информации по своему пути

Если рассматриваемая библиотека не загружена, то ни `libraryinfo()`, ни `string()` не будут работать.

При условии, что известен путь `libpath`, можно

- получить его литеральное имя: `xmlGetValues("//scilablib", "name", libpath+"/lib")`
- получить вектор-столбец составляющих функций: `functions = xmlGetValues("//scilablib/macro", "name", libpath+"/lib")`

## Примеры

C `libraryinfo()` по литеральному имени библиотеки:

    [f, p] = libraryinfo("iolib")

    --> [f, p] = libraryinfo("iolib")
     p  =
     SCI\modules\io\macros\

     f  =
    !input      !
    !unix_g     !
    !unix_w     !
    !%_sodload  !
    !unix_x     !
    !unix_s     !

По дескриптору библиотеки:

    // Просто для отображения:
    iolib

    // Перехватить информацию в переменных:
    p = string(iolib)(1)
    f = string(iolib)(2:$)
    libname = xmlGetValues("//scilablib", "name", p+"/lib")

    --> // Просто для отображения:
    --> iolib

     iolib  =
    Functions files location : SCI\modules\io\macros\.
    input  unix_g  unix_w  %_sodload  unix_x  unix_s

    --> // Перехватить информацию в переменных:
    --> p = string(iolib)(1)
     p  =
     SCI\modules\io\macros\

    --> f = string(iolib)(2:$)
     f  =
    !input      !
    !unix_g     !
    !unix_w     !
    !%_sodload  !
    !unix_x     !
    !unix_s     !

    --> libname = xmlGetValues("//scilablib", "name", p+"/lib")
     libname  =
     iolib

Для незагруженной библиотеки, по её пути:

    path = fullpath("SCI/modules/scicos_blocks/macros/Hydraulics");
    libname = xmlGetValues("//scilablib", "name", path+"/lib")
    functions = xmlGetValues("//scilablib/macro", "name", path+"/lib")
    Hydraulicslib  // незагруженная (Xcos не должен быть запущен)

    --> libname = xmlGetValues("//scilablib", "name", path+"/lib")
     libname  =
     Hydraulicslib

    --> functions = xmlGetValues("//scilablib/macro", "name", path+"/lib")
     functions  =
    !Bache          !
    !Flowmeter      !
    !PerteDP        !
    !PuitsP         !
    !SourceP        !
    !VanneReglante  !

    --> Hydraulicslib
    Undefined variable: Hydraulicslib

## Смотрите также

- string
- load
- librarieslist
- whereis