_searchenv, _wsearchenv
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 |