За последние 24 часа нас посетили 17574 программиста и 1677 роботов. Сейчас ищут 1946 программистов ...

Ввод с консоли

Тема в разделе "Прочие вопросы по PHP", создана пользователем Raa, 16 сен 2006.

  1. Raa

    Raa Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    Вообще мне не представляется возможным как-то оперировать с stdin. На сколько я понимаю, устройство консольного stdin таково, что в него попадают не нажимаемые клавиши, а введеный текст. Т.е., чтобы в поток попали символы, консоль должна быть переведена в режим ввода. Пока консоль не в режиме ввода, никакие нажатия клавишь не влияют никаким образом на stdin. А в режиме ввода - как ни крути, а закончить ввод может только пользователь.
     
  2. Raa

    Raa Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    Вот лично мне ничего не понятно :) Кажется, это не то...
     
  3. def

    def Активный пользователь

    С нами с:
    24 апр 2006
    Сообщения:
    230
    Симпатии:
    0
    Адрес:
    Питер
    дык тебе же нужно прервать нормальное исполнение скрипта и считать что-то с stdin ? или нет ? :)
     
  4. Raa

    Raa Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    Ну да.. И как переменная среды окружения может помочь в этом?
     
  5. Anonymous

    Anonymous Guest

    Вообще то да... уточнил - скан клавиши в С происходит ДО попадания нажатия в stdin... =((
     
  6. def

    def Активный пользователь

    С нами с:
    24 апр 2006
    Сообщения:
    230
    Симпатии:
    0
    Адрес:
    Питер
    ага, вот. ты хочешь обойтись всего одной консолью ?
     
  7. Raa

    Raa Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    желательно, но не обязательно
     
  8. def

    def Активный пользователь

    С нами с:
    24 апр 2006
    Сообщения:
    230
    Симпатии:
    0
    Адрес:
    Питер
    в скрипте проверяешь значение переменной откружения.
    если он имеет некоторое значение - прерываешься и считываешь вход.
    во второй консоли, собственно, когда нужно прервать скрипт задаешь нужное значение переменной откружения.

    я это имеел ввиду.
     
  9. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    Для проверки наличия данных с терминального девайса использовался "ioctl".

    def, я не пойму как вы предлагаете изменить переменную в окружении совершенно другого процесса? Окружение у каждого процесса свое! максимум на что можно расчитывать - так это общее окружение с предком если родитель сам решит его разделять. Но на это крайне неудобно закладываться...

    Raa, задача легко решается если вместо переменной окружения предложенной def'ом использовать файл (создавать и удалять его симулируя эдакий флаг).
    Кроме того можно использовать "pcntl", в таком случае можно использовать fork и создать обработчик для приема различных сигналов типа SIGTERM...
     
  10. def

    def Активный пользователь

    С нами с:
    24 апр 2006
    Сообщения:
    230
    Симпатии:
    0
    Адрес:
    Питер
    да, действительно, об этом я забыл. ну тогда, можно и файл в качестве семафора поиспользовать :)
     
  11. Anonymous

    Anonymous Guest

    DDE, может быть?