![]() |
![]() |
![]() |
![]() |
![]() |
This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. |
Find the path used to invoke the current process
#include <process.h> char * _cmdname( char * buff );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The _cmdname() function determines the full path that the current process was invoked from. If buff isn't NULL, _cmdname() copies the path into the buffer that buff points to.
A pointer to the pathname used to load the process, or NULL if an error occurred.
![]() |
Don't change the string that the returned value points to if you passed NULL for the buff parameter. |
#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;
}
If this code is compiled into an executable named foo:
# ls -F /home/xyzzy/bin/foo foo* # /home/xyzzy/bin/foo I'm "/home/xyzzy/bin/foo".
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | No |
| Thread | Yes |
basename(), _cmdfd(), __progname
![]() |
![]() |
![]() |
![]() |