Compartilhar via


_makepath, _wmakepath

Crie um nome de caminho de componentes.versões mais seguras dessas funções estão disponível; consulte _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 
);

Parâmetros

  • path
    Buffer de caminho completo._makepath não verifica se path não exceda _MAX_PATH.

  • drive
    Letra da unidade.

  • dir
    Caminho de diretório.

  • fname
    Nome de arquivo.

  • ext
    Extensão de nome de arquivo.

Comentários

The _makepath função cria um único caminho e o armazena no path. O caminho pode conter uma letra da unidade, caminho de diretório, nome de arquivo e extensão de nome de arquivo._wmakepathé uma versão de caractere largo da _makepath; os argumentos para _wmakepathsão seqüências de caracteres largos. _wmakepath e _makepath tenham comportamento idêntico caso contrário.

Observação de segurança:

Use uma seqüência de caracteres terminada com caractere nulo.A seqüência de caracteres terminada com caractere nulo não deve exceder o dimensionar do buffer de destino.Para obter mais informações, consulte Evitar saturações de buffer.

Mapeamentos de rotina de texto genérica

Rotina tchar.h

_UNICODE e _MBCS não definido

_MBCS definido

_UNICODE definido

_tmakepath

_makepath

_makepath

_wmakepath

Os argumentos a seguir apontam para buffers que contém os elementos de caminho.

  • drive
    Contém uma letra (A, B e assim por diante) correspondente na unidade desejada e um opcional dois-pontos à direita._makepath Insere o dois-pontos automaticamente no caminho composto se ele estiver ausente. If drive é um caractere nulo ou uma seqüência vazia, nenhuma letra da unidade e dois-pontos aparecem na composição path seqüência de caracteres.

  • dir
    Contém o caminho de diretórios, não incluindo o designador de unidade ou nome de arquivo real.barra / / / à direita é opcional e uma barra / / (/) ou uma barra / / invertida (\) ou ambos podem ser usados em um único dir argumento. Se uma barra / à direita (/ ou \) não for especificado, ele é inserido automaticamente.If dir é um caractere nulo ou uma seqüência vazia, nenhuma barra / é inserida na composição path seqüência de caracteres.

  • fname
    Contém o nome de arquivo de base sem quaisquer extensões de nome de arquivo.If fname é NULL ou aponta para uma seqüência vazia, nenhum nome de arquivo é inserido na composição path seqüência de caracteres.

  • ext
    Contém a extensão de nome de arquivo real, com ou sem um ponto (.) entrelinhamento._makepath Insere o período automaticamente se não for exibido no ext. If ext é um caractere nulo ou uma seqüência vazia, nenhum período é inserido na composição path seqüência de caracteres.

The path argumento deve apontar para um buffer vazio grande o suficiente para conter o caminho completo. Embora existam sem limites de dimensionar em qualquer um dos campos que constituem o path, a composição path deve ser maior do que o _MAX_PATH constante, definido em Stdlib.h. _MAX_PATH pode ser maior do que pode lidar com a versão corrente do sistema operacional.

In Visual C++ 2005, validar essas funções a path parâmetros. Se o caminho NULL, o manipulador de parâmetro inválido é chamado, conforme descrito em Validação de parâmetro. Além disso, errno é definido como EINVAL. NULL são permitidos valores para os outros parâmetros.

Requisitos

Rotina

Cabeçalho necessário

_makepath

<stdlib.h>

_wmakepath

<stdlib.h> ou <wchar.h>

Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.

Exemplo

// crt_makepath.c
// compile with: /W3
#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 );
}

Path created with _makepath: c:\sample\crt\makepath.c  Path extracted with _splitpath:   Drive: c:   Dir: \sample\crt\   Filename: makepath   Ext: .c

Equivalente do NET Framework

sistema::IO::arquivo:: criar

Consulte também

Referência

Manipulação de arquivos

_fullpath, _wfullpath

_splitpath, _wsplitpath