_searchenv, _wsearchenv

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu stdlib.h - Index


Header-Datei

stdlib.h

Kategorie

Verschiedene Routinen

Prototyp

char *_searchenv(const char *file, const char *varname, char *buf);

char *_wsearchenv(const wchar_t *file, const wchar_t *varname, wchar_t *buf);

Beschreibung

Sucht nach einer Datei und verwendet dazu die in einer Umgebungsvariablen enthaltenen Verzeichnisangaben.

_searchenv versucht, eine Datei zu finden und verwendet dabei die in der Umgebungsvariablen varname des Betriebssystems enthaltenen Verzeichnisangaben. PATH, LIB und INCLUDE sind typische Umgebungsvariablen, die Verzeichnisangaben enthalten.

_searchenv sucht die Datei zunächst im aktuellen Verzeichnis des aktuellen Laufwerks. Wird die Datei dort nicht gefunden, ruft die Funktion die Umgebungsvariable varname ab und durchsucht alle dort angegebenen Verzeichnisse, bis die Datei gefunden ist oder keine weiteren Verzeichnisse angegeben sind.

Wurde die Datei gefunden, wird der vollständige Pfadname in dem Puffer gespeichert, auf den buf zeigt. Dieser String kann dann für Zugriffe auf die Datei (zum Beispiel mit fopen oder exec) verwendet werden. Es wird angenommen, dass der Puffer groß genug ist, um den ermittelten Dateinamen aufnehmen zu können. Wurde die Datei nicht gefunden, wird nur ein Nullzeichen, also ein leerer String in buf gespeichert.

Rückgabewert

Keiner.

Beispiel

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

char buf[_MAX_PATH];

int main(void)
{
  /* ILINK32 wird im Installationsverzeichnis gefunden */
  _searchenv("ILINK32.EXE","PATH",buf);
  if (buf[0] == '\0')
    printf("ILINK32.EXE not found\n");
  else
    printf("ILINK32.EXE found in %s\n", buf);

  /* Sucht nach einer nicht vorhandenen Datei */
  _searchenv("NOTEXIST.FIL","PATH",buf);
  if (buf[0] == '\0')
    printf("NOTEXIST.FIL not found\n");
  else
    printf("NOTEXIST.FIL found in %s\n", buf);
  return 0;
}

Portabilität

POSIX Win32 ANSI C ANSI C++

_searchenv

+

_wsearchenv

Nur NT