только нужно учитывать, что strlen(argv[0]) должен быть >= strlen(PROC_NAME), иначе новое имя запишется не полностью. чтобы этого достичь,желательно запускать бинарь по абсолютному пути а не по относительному, тогда места должно хватить, ну а если вдруг ты решил записать в PROC_NAME очень длинную строку, то сам бинарь всегда можно положить поглубже в ФС, чем глубже он будет лежать,тем больше памяти будет выделено для argv[0] а следовательно тем более длинное имя процесса можно туда записать