_cmdname()

Вернуть путь, используемый для обращения к текущему процессу

Прототип:

#include <process.h>
char * _cmdname( char *buff );

Аргументы:

buff
NULL или указатель на буфер, в котором функция сможет разместить путь. Чтобы определить необходимый размер буфера, следует вызвать fpathconf() или pathconf() с аргументом _PC_PATH_MAX и прибавить к результату 1 для завершающего нулевого символа.

Библиотека:

libc

Описание:

Функция _cmdname() определяет полный путь, по которому был вызван текущий процесс. Если buff не равен NULL, _cmdname() копирует путь в буфер, на который указывает buff.

Возвращаемое значение:

Указатель на путь, используемый при загрузке процесса, или NULL в случае возникновения ошибки.


Note: Не изменяйте строку, на которую указывает возвращаемое значение, если в параметр buff передан NULL.

Примеры:

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <limits.h>
#include <process.h>
int main( void )
{
size_t maximum_path;
char *buff;
maximum_path = (size_t)pathconf( "/", _PC_PATH_MAX );
buff = (char* )malloc( maximum_path );
if ( _cmdname( buff ) )
{
printf( "I'm \"%s\".\n", buff );
} else {
perror( "_cmdname() failed" );
free( buff );
return (EXIT_FAILURE);
}
free( buff );
return (EXIT_SUCCESS);
}

Если данный код скомпилировать в исполняемый файл foo:

# ls -F /home/xyzzy/bin/foo foo* # /home/xyzzy/bin/foo I'm "/home/xyzzy/bin/foo".

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

basename(), _cmdfd(), __progname




Предыдущий раздел: Описание API системной библиотеки