#c
Допустим, есть две программы. Одна просит пользователя ввести имя в массив символов, а вторая выводит имя, из своего массива символов. Как передать содержание одного массива во второй без записи и чтения файла?
Ответы
Ответ 1
Есть три стандартных способа: Очереди сообщений (есть два вида очередей - POSIX и System V) Каналы (именованные и не именованные) Разделяемая память Ваша задача - классический пример задачи "Производитель -> потребитель". Что бы не заморачиваться с кольцевыми буферами и прочим, рекомендую использовать именованный канал. man 3 mkfifof mkfifo - make FIFOs (named pipes) Create named pipes (FIFOs) with the given NAMEs. Самый простой пример: В командной строке выполняем команду mkfifo my_pipe Пишем и запускаем программу потребителя, которая открывает my_pipe как обычный файл и виснет на ожидании чтения. Пишем и запускаем программу поставщика, которая открывает my_pipe на запись и пишет данные туда. Начинается обмен данными по каналу. Здесь существенен порядок(!) запуска этих программ. Если первым запустить производителя, то программа свалится по попытке записи в канал, из которого никто не читает.Ответ 2
Вообще, для таких вещей делают у одной из программ, к которой подключаться, некое API, SAPI — для того чтобы другая программа смогла получить нужное для себя.
Комментариев нет:
Отправить комментарий