_makepath, _wmakepath
Creare un nome di percorso da componenti.Più versioni sicure di queste funzioni sono disponibili, vedere _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
);
Parametri
path
Buffer di percorso completo.drive
Contiene una lettera (A, B, e così via) corrispondente nell'unità desiderata e i due punti finali facoltativi._makepath inserisce i due punti automaticamente nel percorso composto se disponibile.se drive viene NULL o punta a una stringa vuota, nessuna lettera di unità viene visualizzato in composto path stringa.dir
Contiene il percorso delle directory, escluso dell'indicatore di unità o del nome del file effettivo.La barra finale è facoltativa e una barra (/) o una barra rovesciata (\) o entrambe possono essere utilizzate in un singolo dir argomento.Se nessuna barra finale (/o \) è specificata, viene inserita automaticamente.se dir viene NULL o punta a una stringa vuota, nessun percorso della directory viene inserito in composto path stringa.fname
contiene il nome file di base senza alcune estensioni di file.se fname viene NULL o punta a una stringa vuota, nessun nome file viene inserito in composto path stringa.ext
Contiene effettiva estensione di file, con o senza un punto iniziale (.)._makepath inserire il punto automaticamente se non è visualizzato in ext.se ext viene NULL o punta a una stringa vuota, alcuna estensione viene inserito in composto path stringa.
Note
_makepath la funzione crea una stringa di percorso composta da singoli componenti, archiviare il risultato in path.path potrebbe includere una lettera di unità, un percorso di directory, nome file e l'estensione del nome file._wmakepath è una versione a caratteri estesi di _makepath; gli argomenti a _wmakepath sono le stringhe di caratteri estesi._wmakepath e _makepath comportano in modo identico in caso contrario.
Nota sulla sicurezza utilizzare una stringa con terminazione null.Per evitare il sovraccarico del buffer, la stringa con terminazione null non deve superare la dimensione di path buffer._makepath non garantisce che la lunghezza delle stringhe di percorso composta non supera _MAX_PATH.Per ulteriori informazioni, vedere Evitare i sovraccarichi del buffer.
Mapping di routine a testo generico
routine di Tchar.h |
_UNICODE e _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tmakepath |
_makepath |
_makepath |
_wmakepath |
path l'argomento deve puntare a un buffer vuoto abbastanza grande da contenere il percorso completo.il composto path non deve essere maggiore di _MAX_PATH costante, definita in Definito.
se il percorso è NULL, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.inoltre, errno è impostato su EINVAL.NULL i valori consentiti per tutti gli altri parametri.
Requisiti
routine |
Intestazione di associazione |
---|---|
_makepath |
<definito> |
_wmakepath |
<definito> o <wchar.h> |
Per ulteriori informazioni sulla compatibilità, vedere compatibilità nell'introduzione.
Esempio
// 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 );
}