Использование программы в качестве библиотеки, содержащей основную функцию - PullRequest
2 голосов
/ 24 сентября 2010

Я планирую написать программу, которая делает вызовы cdrecord.(Я новичок, новичок, пытающийся «почесать зуд») Программа была бы написана на C ++.Я определил, что мне нужно иметь возможность запускать cdrecord, чтобы это работало.

cdrecord написан на C. Однако документация по его использованию взята из командной строки.Исходный код включает в себя основную функцию, которая запускает приложение командной строки, аналогично коду, который я запускаю cdrecord.

Мне интересно, должен ли я:

  1. Изменитьmain к другому имени, затем включите исходный файл и при необходимости вызовите его.
  2. Вызовите скомпилированную программу с помощью команды system ().
  3. Что-то еще.

Ответы [ 2 ]

2 голосов
/ 24 сентября 2010

system (), как правило, хороший способ, просто будьте осторожны, чтобы не вводить произвольные ненадежные значения в строку, которую вы выполняете.Например, если у вас есть веб-интерфейс, где с параметром padsize по умолчанию установлено значение 0, и кто-то вводит не число, а «0; rm -rf *;», убедитесь, что вы не в конечном итоге позвонили «cdrecord padsize=0; rm -rf *; ...».

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

2 голосов
/ 24 сентября 2010

Использование system () позволит вам не беспокоиться о коде cdrecord.Лично я включил бы код в свою собственную программу, если бы у меня были очень насущные проблемы, которые требуют от меня его включения.Я думаю, что system () - это путь.

http://www.cplusplus.com/reference/clibrary/cstdlib/system/

1) Есть ли какая-то конкретная причина, по которой вы бы скорее включили его в свой собственный код, а не просто использовали его как есть?

2) У вас есть права изменить код и включить его в свою программу?

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