getopt()

Тема в разделе "LANGS.C", создана пользователем Vic, 20 дек 2009.

  1. Vic

    Vic New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    75
    доброго времени суток,

    есть такая задача:
    обработать пользовательский консольный ввод параметров.
    Проблема заключается в следующем:
    getopt() обрабатывает введенные ЕДИНОЖДЫ параметры. То есть
    мы запускаем программу с параметрами - она их обрабатывает,
    выполняет то что нужно и завершается.
    А нужно:
    чтобы она обрабатывала параметры, выполняла соответствующие действия и
    НЕ завершалась а ждала ввода следующей команды,
    а завершалась
    ТОЛЬКО ПОСЛЕ ввода, например, -q.

    пока что не удается реализовать, есть идеи?

    Всем спасибо
     
  2. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    а какие тут могут быть идеи?
    1. параметры нужно считывать не из аргументов майн функции, а из консоли.
    2. цикл, блокирующий вызов функции чтения данных.
    3. парсишь данные. если q - выходишь из цикла.
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    getopt() разбирает параметры командной строки, которые передаются при запуске приложения.
    Написать собственный простенький интерпретатор команд не так сложно.
     
  4. Vic

    Vic New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    75
    cupuyc

    то есть если читать из консоли, то выходит как написал n0name
    парсить надо будет самому? В смысле тогда getopt() - не вариант?
     
  5. Vic

    Vic New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    75
    n0name
    написать то конечно не сложно, просто раз getopt() специально написан для обработки команд, использовать ее экономичнее во всех смыслах.
     
  6. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    getopt() служит для обработки параметров коммандной строки.
    Тебе надо использовать не эти параметры, а какой-то другой механизм -> getopt() не подходит.
     
  7. Vic

    Vic New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    75
    ок, понял
    большое спасибо