Предположим на секунду, что вы явно задали «проблемные» переменные среды, например ...
Не делайте этого.
Довольно сложно определить все переменные среды, которые могут быть важны для какой-либо программы. Несколько проще просто предоставить программе чистую среду, в которой установлены только необходимые переменные.
Если вы выполняете такую простую команду, просто используйте одну из функций exec
, поэтому вам не нужно беспокоиться о проблемах, связанных с различными оболочками.
Если вы знаете, что вызываете стандартную утилиту, вы можете быть уверены, что знаете, что она делает, и любые ограничения ресурсов и тому подобное, вероятно, затронут и вашу программу, если вы реализуете функцию самостоятельно. {{1} } Но есть варианты find
с нестандартными расширениями, например -print0
, которые вы использовали, поэтому, если вы их используете, вы зависите от версии внешней программы, которая их поддерживает. .