[Previous] [Contents] [Next]

searchenv()

Search the directories listed in an environment variable

Synopsis:

#include <stdlib.h>

void searchenv( const char* name,
                const char* env_var,
                char* buffer );

Library:

libc

Description:

The searchenv() function searches for the file specified by name in the list of directories assigned to the environment variable specified by env_var. Common values for env_var are "PATH", "LIB" and "INCLUDE".


Note: The searchenv() function doesn't search the current directory unless it's specified in the env_var.

The full pathname is placed in the specified buffer, which should be PATH_MAX bytes long. If the specified file can't be found, then buffer contains an empty string.


Note: Use pathfind() or pathfind_r() instead of this function.

Examples:

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

void display_help( FILE *fp )
{
    printf( "display_help T.B.I.\n" );
}

int main( void )
{
    FILE *help_file;
    char full_path[ PATH_MAX ];

    searchenv( "lib_ref.html", "PATH", full_path );
    if( full_path[0] == '\0' ) {
        printf( "Unable to find help file\n" );
    } else {
        help_file = fopen( full_path, "r" );
        display_help( help_file );
        fclose( help_file );
    }
    
    return EXIT_SUCCESS;
}

Classification:

QNX 4

Safety:
Cancellation point No
Interrupt handler No
Signal handler No
Thread Yes

Caveats:

The searchenv() function manipulates the environment pointed to by the global environ variable.

See also:

getenv(), pathfind(), pathfind_r(), setenv()


[Previous] [Contents] [Next]