Выполнить команду оболочки Linux в c ++, скрывая ее вывод

Я хочу выполнить команду оболочки Linux из «/ sbin /» с помощью execl или system (или другой команды) и скрыть ее вывод.

Я уже использую «fork», чтобы получить дочерний процесс …

Как если бы я вошел …

service "servicename" restart

Я бы увидел вывод, где написано «перезапуск xyz [OK]». Вместо этого я просто хочу, чтобы команда выполнялась без вывода сообщений, а ее вывод отбрасывался вместо отображения в моем консольном приложении.

0

Решение

Перенаправить вывод на /dev/null

Например.,

service smb restart 1> /dev/null

service smb restart 2> /dev/null

где 1 а также 2 представляет stdout а также stderr

1

Другие решения

Вы можете добавить это к вашей команде:
«> / dev / null 2>&1 «

Итак, ваша команда становится:
перезапуск службы [servicename]> / dev / null 2>&1

Это то, что он перенаправляет stderr на stdout (2>&1) и перенаправляет стандартный вывод в / dev / null (> / dev / null)

2

По вопросам рекламы [email protected]