Partilhar via


_makepath, _wmakepath

Crie um nome de caminho a partir de componentes.Versões mais seguras dessas funções estão disponíveis; see _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.

  • drive
    Contém uma letra (A, B e assim por diante) correspondente a unidade desejada e uma vírgula à direita opcional._makepathinsere automaticamente os dois-pontos no caminho composto se ele estiver ausente.Se drive é NULL ou aponta para uma seqüência vazia, nenhuma letra de unidade aparece composição path seqüência de caracteres.

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

  • fname
    Contém o nome do arquivo de base sem qualquer extensão de nome de arquivo.Se 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 à esquerda (.)._makepathInsere o período automaticamente se ele não aparecer na ext.Se ext é NULL ou aponta para uma seqüência vazia, sem extensão é inserido na composição path seqüência de caracteres.

Comentários

O _makepath função cria uma seqüência de caracteres do caminho composto dos componentes individuais, armazenando o resultado em path.O path pode incluir uma letra de unidade, caminho de diretório, nome de arquivo e extensão de nome de arquivo._wmakepathé uma versão de caractere largo de _makepath; os argumentos para _wmakepath são seqüências de caracteres largos._wmakepathe _makepath tenham comportamento idêntico caso contrário.

Observação de segurança usar uma seqüência terminada por caractere nulo.Para evitar a saturação de buffer, a seqüência de caracteres terminada por caractere nulo não deve exceder o tamanho da path buffer._makepathCertifique-se que o comprimento da seqüência de caracteres do caminho composto não exceda _MAX_PATH.Para obter mais informações, consulte Evitando saturações de Buffer.

Mapeamentos de rotina de texto genérico

Rotina de TCHAR.h

_ Unicode e _ MBCS do arquivo não definido

_ MBCS do arquivo definido

_ Unicode definido

_tmakepath

_makepath

_makepath

_wmakepath

O path argumento deve apontar para um buffer vazio grande o suficiente para conter o caminho completo.O composto path deve ser maior do que o _MAX_PATH constante, definido em Stdlib.h.

Se o caminho é NULL, o manipulador de parâmetro inválido é invocado, conforme descrito em Validação de parâmetro.Além disso, errno for definido como EINVAL.NULLsão permitidos valores para todos 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
#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 );
}
  

Equivalência do .NET Framework

System::IO::File:: criar

Consulte também

Referência

Manipulação de arquivos

_fullpath, _wfullpath

_splitpath, _wsplitpath

_makepath_s, _wmakepath_s