как взаимодействовать с программой командной строки из кода C ++ - PullRequest
0 голосов
/ 02 декабря 2018

Для моего финального проекта по информатике мне нужно взаимодействовать с базой данных SQL.Единственная проблема в том, что мой проф не установит для меня SQL c ++ API.Могу ли я по-прежнему взаимодействовать с SQL без API?

1 Ответ

0 голосов
/ 02 декабря 2018

Если я правильно понимаю ваш вопрос, вы хотите, чтобы ваша программа могла запускать дочерний процесс (в данном случае программу командной строки SQL), а затем иметь возможность читать текст, который она получает от дочернего процесса stdout и / или stderr, и записать текст в stdin дочернего процесса, так же, как если бы пользователь / она выполнял эту программу в интерактивном режиме.

Ответ - да, возможночтобы сделать это, хотя это требует некоторой работы.В Linux / Unix / MacOSX вы можете вызвать forkpty () для порождения дочернего процесса - родительский процесс получит сокет (через первый аргумент forkpty), который вы можете использовать для связи сstdin и stdout дочернего процесса.В дочернем процессе вы можете затем вызвать execvp (или один из его вариантов), чтобы запустить программу SQL в этом процессе;

В Windows это немного сложнее - вы 'Потребуется настроить некоторые каналы, а затем вызвать CreateProcess (), чтобы запустить дочерний процесс и связаться с ним через эти каналы.У Microsoft есть страница по теме (включая пример кода) здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...