Главная страница
Навигация по странице:

  • Возвращаемое

  • Назначение

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

  • Прототип в

  • Переносимость

  • Справочник по функциям С++. Подпрограммы классификации Подпрограммы преобразования


    Скачать 3.41 Mb.
    НазваниеПодпрограммы классификации Подпрограммы преобразования
    АнкорСправочник по функциям С++.doc
    Дата07.05.2018
    Размер3.41 Mb.
    Формат файлаdoc
    Имя файлаСправочник по функциям С++.doc
    ТипДокументы
    #18992
    КатегорияИнформатика. Вычислительная техника
    страница33 из 120
    1   ...   29   30   31   32   33   34   35   36   ...   120

    enable


    -----------------------------------------------------------------
    Назначение Включение прерываний.
    Синтаксис #include

    void enable(void);
    Замечания enable предназначен для предоставления прог-

    раммисту возможности гибкого управления преры-

    ваниями.
    Макрос enable включает обработку прерываний

    внешних устройств.
    Возвращаемое Нет.

    значение
    Переносимость Этот макрос предназначены только для процессора

    8086.
    Смотри также disable, getvect

    -----------------------------------------------------------------

    eof


    -----------------------------------------------------------------
    Назначение Контролирует достижение конца файла.
    Синтаксис int eof(int handle);
    Прототип в io.h
    Замечания eof определяет достигнут ли конец файла, свя-

    занного с дескриптором handle.
    Возвращаемое Если текущая позиция - конец файла, то eof

    значение возвращает 1, иначе возвращается 0.
    Возвращаемое значение (-1) указывает на ошибку,

    и errno устанавливается в
    EBADF - неверный номер файла
    Смотри также cleaerr, feof, ferror, perror

    -----------------------------------------------------------------

    exec...


    -----------------------------------------------------------------
    Назначение Загружает и выполняет программы.
    Синтаксис int execl(char *pathname, char *arg0,

    *arg1,..., *argn, NULL );
    int execle(char *pathname, char *arg0,

    *arg1,..., *argn, NULL, char **envp);
    int execlp(char *pathname, char *arg0,

    *arg1,..., *argn, NULL );
    int execlpe(char *pathname, char *arg0,

    *arg1,..., *argn, NULL, char **envp);
    int execv(char *pathname, char *arg[]);
    int execve(char *pathname, char *arg[],

    char **envp);
    int execvp(char *pathname, char *arg[]);
    int execvpe(char *pathname, char *arg[],

    char **envp);
    Прототип в process.h
    Замечания Функции exec...- семейства загружают и выполня-

    ют другие программы, называемые процессами-по-

    томками. Когда вызов exec... успешен, про-

    цесс-потомок размещается с процессом-родителем

    оверлейно. Поэтому должно быть достаточное ко-

    личество свободной памяти для загрузки и выпол-

    нения процесса-потомка.
    pathname - маршрут доступа к файлу, вызванного

    процесса-потомка. Функции exec... производят

    поиск для pathname, используя стандартный алго-

    ритм поиска MS-DOS:
    # Если расширение явно не задано (например

    pathname = MYPROG), то сперва ищется файл без

    расширения. Если такой файл не найден, то к

    его имени добавляется .COM, и поиск выполня-

    ется снова. Если поиск вновь неудачен, то он

    повторяется последний раз, но с расширением

    .EXE.
    # Если явно заданы расширение или точка (напри-

    мер, pathname = MYPROG.EXE), то поиск выпол-

    няется только для заданного имени файла.
    Суффиксы l, v, p и e добавляются к именам функ-

    ций exec...-семейства для того, чтобы опреде-

    лить конкретные возможности функции.
    p Указывает, что функция будет искать процесс -

    потомок в каталогах, заданных переменной сре-

    ды DOS PATH. Без суффикса p производится по-

    иск только в корневом и текущем каталоге. Ес-

    ли в параметре pathname не указан каталог, то

    вначале просматривается текущий каталог, а

    затем каталоги, заданные переменной среды

    DOS.
    l Указывает, что указатели аргументов (arg0,

    arg1, ..., argn) пересылаются как отдельные

    аргументы. Суффикс l обычно используется в

    тех случаях, когда вы знаете наперед число

    пересылаемых аргументов.
    v Указывает, что указатели аргументов (arg[0],

    arg[1],..., arg[n]) пересылаются как массив

    указателей. Обычно суффикс v используется в

    тех случаях, когда пересылается переменное

    число аргументов.
    e Указывает, что аргумент envp может быть пос-

    лан процессу-потомку, что позволяет изменить

    его среду. Без суффикса e процесс-потомок

    наследует среду процесса-родителя.
    Каждая функция в семействе exec... должна иметь

    один из двух суффиксов (либо l, либо v). Суф-

    фиксы поиска маршрута и наследования среды (p и

    e) необязательны.
    Например:
    * exec...-функция execl берет аргументы раз-

    дельно, проводит поиск только в корневом и

    текущем каталоге для процесса-потомка и пе-

    ресылает среду процесса-родителя процессу-

    потомку.
    * exec...-функция execvpe берет массив аргу-

    ментов указателей, включает PATH в свой по-

    иск процесса-потомка и принимает аргумент

    envp для изменения среды процесса-потомка.
    Функции exec... должны пересылать по крайней

    мере один аргумент процессу-потомку (arg0 или

    arg[0]). Этот аргумент, по соглашению - копия

    pathname. (Использование различных значений для

    этого аргумента не вызывает ошибок).
    В MS-DOS 3.x pathname доступен процессу-потом-

    ку; в более ранних версиях процесс-потомок не

    может использовать посланное нулевым аргументом

    (arg0 или arg[0]) значение.
    Если используется суффикс l, то arg0 обычно

    указывает на pathname, а arg1, ..., argn указы-

    вают на символьные строки, которые образуют но-

    вый список аргументов. Обязательный NULL следу-

    ет за argn, отмечая конец списка.
    Если используется суффикс e, то вы посылаете

    список новых установок среды с помощью аргумен-

    та envp. Этот аргумент среды представляет собой

    массив строк (char*). Каждый элемент указывает

    на NULL-оканчивающуюся строку символов вида
    envar = value,
    где envar - имя переменной среды, а value -

    строка, значение которой определяет новую сре-

    ду. Последним элементом в envp является NULL.

    Когда envp равен NULL, процесс-потомок наследу-

    ет среду процесса-родителя.
    Общая длина arg0 + arg1 +...+ argn (или arg[0]+

    arg[1]+ ...+ arg[n]), включая пробелы, разделя-

    ющие аргументы, должна быть меньше 128 байт.

    NULL-ограничители не учитываются.
    Когда функция exec... вызывается, все открытые

    файлы остаются открытыми в процессе-потомке.
    Возвращаемое При успешном вызове exec...-функции не возвра-

    значение возвращают значений. При ошибке возвращается

    (-1), и errno устанавливается в одно из следую-

    щих значений:
    E2BIG - список аргументов слишком длинен

    EACCES - ошибка доступа

    EMFILE - слишком много открытых файлов

    ENOENT - маршрут или имя файла не найдены

    ENOEXEC - ошибка в формате exec

    ENOMEM - недостаточно памяти
    Переносимость exec... уникальна для MS-DOS.
    Смотри также abort, atexit, _exit, exit, _fpreset,

    searchpath, spawn..., system
    Пример

    #include

    #include

    main()

    {

    int stat;
    printf("Вызов процесса-потомка с аргументами"

    " arg1 arg2 ...\n");

    stat =execl("CHILD.EXE", "CHILD.EXE",

    "arg1", "arg2", NULL) ;
    /* execl завершится, если не запустит CHILD*/

    printf("ошибка execl = %d\n", stat);

    exit(1);

    }
    /* CHILD.C */

    #include
    main(int argc, char *argv[])

    {

    int i;
    printf("Процесс-потомок запущен... \n");
    /* Распечатать аргументы */

    for (i=0; i
    printf("argv[%d]: %s\n", 1, argv[i]);

    }


    Результат выполнения программы
    Вызов процесса-потомка c аргументами arg1 arg2 ...

    Процесс-потомок запущен...
    arg[0]: CHILD.EXE

    arg[1]: arg1

    arg[2]: arg2

    -----------------------------------------------------------------
    1   ...   29   30   31   32   33   34   35   36   ...   120


    написать администратору сайта