У меня есть в моей программе:
execv (programname, (char **)argv);
Я не уверен, что команда действительно выполняется правильно.Как я могу узнать?Это работает в фоновом режиме?
Я настоятельно рекомендую приобрести книгу, которая относится к задаче, которую вы пытаетесь выполнить.Это будет очень долгий путь, если вы будете задавать новый вопрос о SO на каждом этапе пути.Мы любим помогать, но иногда книги лучше.
Расширенное программирование в UNIX - это превосходное приложение, содержащее полный образец оболочки, включая конвейеры.На самом деле, примеры программ доступны для скачивания бесплатно (но я все равно рекомендую забрать копию книги).
Поскольку execv заменяет текущий процесс, команда будет выполняться в том же состоянии, что и родительский процесс.
Один из способов узнать, выполняется ли ваша команда, - заставить команду распечатать что-то на консоли,если это возможно.
Со страницы руководства execv.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ Если любая из функций exec () вернется, произойдет ошибка.Возвращаемое значение равно -1, и для определения ошибки будет установлено значение errno.
Итак, если вы получили возвращаемое значение, что-то пошло не так.
Я полагаю, что execv () должен перекрывать текущий процесс с именем программы.Если вы хотите запустить программу в отдельном процессе, вы хотите использовать fork () или system () - я не верю, что последний является «стандартным», но кажется, что он вездесущ.