номер
Это не утечка памяти. exec*()
сделает локальную копию строковых данных в массиве args, затем сдует образ памяти дочернего процесса и наложит его на образ памяти, используемый /bin/echo
. По сути, все, что остается после exec () - это pid.
Edit:
User318904 поднял случай, когда exec () вернул -1 (то есть, сбой). В этом случае дочерний процесс, который разветвился, но не выполнил exec, действительно имеет техническую утечку памяти, но, поскольку обычным ответом на сбой exec является просто выход дочернего процесса в любом случае, память будет возвращена ОС. Тем не менее, освобождение его, вероятно, является хорошей привычкой, если не по какой-либо другой причине, кроме этого, это не даст вам задуматься об этом позже.