_makepath, _wmakepath

Erstellen Sie einen Pfadnamen der Komponenten.Sicherere Versionen dieser Funktionen sind verfügbar. Weitere Informationen finden Sie unter _makepath_s, _wmakepath_s.

void _makepath(
   char *path,
   const char *drive,
   const char *dir,
   const char *fname,
   const char *ext 
);
void _wmakepath(
   wchar_t *path,
   const wchar_t *drive,
   const wchar_t *dir,
   const wchar_t *fname,
   const wchar_t *ext 
);

Parameter

  • path
    Puffer des vollständigen Pfads.

  • drive
    Enthält einen Buchstaben (A, B usw.) entsprechend dem gewünschten Laufwerk und einem optionalen nachgestellten Doppelpunkt._makepath fügt den Doppelpunkt automatisch in den zusammengesetzten Pfad ein, wenn er fehlt.Wenn driveNULL ist oder eine leere Zeichenfolge zeigt, wird kein Laufwerkbuchstabe in der zusammengesetzten path Zeichenfolge.

  • dir
    Enthält den Pfad von Verzeichnissen, ohne den Laufwerkbezeichner oder den tatsächlichen Dateinamen.Der nachfolgende Schrägstrich ist optional und entweder ein Schrägstrich (/) oder ein umgekehrter Schrägstrich (\) oder beides werden in einem einzelnen dir-Argument verwendet werden.Wenn kein nachgestellter Schrägstrich (/oder \) angegeben, wird er automatisch eingefügt.Wenn dirNULL ist oder eine leere Zeichenfolge zeigt, wird kein Verzeichnispfad in die zusammengesetzte path Zeichenfolge eingefügt.

  • fname
    Enthält den Basisdateinamen ohne Dateinamenerweiterungen.Wenn fnameNULL ist oder eine leere Zeichenfolge zeigt, wird kein Dateiname in die zusammengesetzte path Zeichenfolge eingefügt.

  • ext
    Enthält die tatsächliche Dateinamenerweiterung (mit oder ohne einen führenden Punkt (.)._makepath fügt automatisch den Punkt ein, wenn es nicht in extangezeigt wird.Wenn extNULL ist oder eine leere Zeichenfolge zeigt, wird keine Erweiterung in die zusammengesetzte path Zeichenfolge eingefügt.

Hinweise

Die _makepath-Funktion erstellt eine zusammengesetzte Pfadzeichenfolge von den einzelnen Komponenten und speichert das Ergebnis in path.path könnte einen Laufwerkbuchstaben, einen Verzeichnispfad, einen Dateinamen und eine Dateinamenerweiterung ein._wmakepath ist eine Breitzeichen-Version von _makepath. _wmakepath sind die Argumente für Zeichenfolgen mit Breitzeichen._wmakepath und _makepath verhalten sich ansonsten unterscheiden.

Sicherheitshinweis Verwenden Sie eine auf NULL endende Zeichenfolge.Um Pufferüberlauf zu vermeiden, darf die auf NULL endende Zeichenfolge path die Größe des Puffers nicht überschreiten._makepath garantiert nicht, dass die Länge der zusammengesetzten Pfadzeichenfolge nicht _MAX_PATHüberschreitet.Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen.

Zuweisung generischer Textroutinen

Tchar.h-Routine

_UNICODE als auch _MBCS nicht definiert

_MBCS definieren

_UNICODE definiert

_tmakepath

_makepath

_makepath

_wmakepath

Das path-Argument muss zu einem leeren Puffer ausreichend verweisen, der den vollständigen Pfad enthalten groß ist.Zusammengesetzte path muss nicht größer als die _MAX_PATH Konstante sein, definiert in Stdlib.h.

Wenn Pfad NULLungültige Parameter ist, wird der Ereignishandler aufgerufen, wie in Parametervalidierungbeschrieben.Außerdem wird errno zu EINVALfestgelegt.NULL-Werte werden für alle anderen Parameter zulässt.

Anforderungen

Routine

Erforderlicher Header

_makepath

<stdlib.h>

_wmakepath

<stdlib.h> oder <wchar.h>

Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.

Beispiel

// crt_makepath.c
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char path_buffer[_MAX_PATH];
   char drive[_MAX_DRIVE];
   char dir[_MAX_DIR];
   char fname[_MAX_FNAME];
   char ext[_MAX_EXT];

   _makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" ); // C4996
   // Note: _makepath is deprecated; consider using _makepath_s instead
   printf( "Path created with _makepath: %s\n\n", path_buffer );
   _splitpath( path_buffer, drive, dir, fname, ext ); // C4996
   // Note: _splitpath is deprecated; consider using _splitpath_s instead
   printf( "Path extracted with _splitpath:\n" );
   printf( "  Drive: %s\n", drive );
   printf( "  Dir: %s\n", dir );
   printf( "  Filename: %s\n", fname );
   printf( "  Ext: %s\n", ext );
}
  

.NET Framework-Entsprechung

System::EA::Datei::Erstellen

Siehe auch

Referenz

Datei-Behandlung

_fullpath, _wfullpath

_splitpath, _wsplitpath

_makepath_s, _wmakepath_s