searchenv()

Поиск в директориях, указанных в переменной окружения

Прототип:

#include <stdlib.h>
void searchenv( const char *name,
const char *env_var,
char *buffer );

Аргументы:

name
Имя файла, которого необходимо найти.
env_var
Имя переменной окружения, значение которой представляет собой список каталогов, в которых необходимо выполнить поиск. Обычными переменными env_var являються PATH, LIB и INCLUDE.

Note: Функция search() не выполнит поиск в текущем каталоге, если он не указан в переменной окружения.

buffer
Буфер, в котором функция может хранить полный путь к найденному файлу. Этот буфер должен иметь длину PATH_MAX байт. Если указанный файл не найден, функция сохраняет пустую строку в буфере.

Библиотека:

libc

Описание:

Функция search() выполняет поиск файла, указанного в аргументе name в списке каталогов, присвоенных переменной окружения env_var.


Note: Используйте pathfind() и pathfind_r() вместо данной функции.

Примеры:

#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);
}

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

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

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

Предостережения:

Функция searchenv() меняет переменную окружения, на которую указывает глобальная переменная environ.

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

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




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