Если вы хотите сделать это портативным способом, который будет работать в нескольких вариациях Unix, вариантов будет очень мало.
Что вам нужно сделать, так это чтобы ваш вызывающий процесс вызвал exec с аргументом argv [0]
, указывающим на имя, которое вы хотели бы видеть в выводе процесса, и имя файла, указывающее на фактический исполняемый файл.
Вы можете попробовать это поведение из оболочки, используя:
exec -a "This is my cute name" bash
Это заменит текущий процесс bash с именем "This is my cute name"
.
Чтобы сделать это в C, вы можете взглянуть на исходный код sendmail
или любое другое программное обеспечение, которое было перенесено, и найти все варианты, необходимые для разных операционных систем.
Некоторые операционные системы имеют setproctitle(3)
API, другие позволяют переопределять содержимое argv [0]
и отображать этот результат.