_splitpath, _wsplitpath

Divida um nome de caminho em componentes.Há versões mais seguras dessas funções, consulte _splitpath_s, _wsplitpath_s.

void _splitpath(
   const char *path,
   char *drive,
   char *dir,
   char *fname,
   char *ext 
);
void _wsplitpath(
   const wchar_t *path,
   wchar_t *drive,
   wchar_t *dir,
   wchar_t *fname,
   wchar_t *ext 
);

Parâmetros

  • path
    Caminho completo.

  • drive
    Letra, seguida de dois pontos da unidade (:).Você pode passar NULL para esse parâmetro se você não precisar a letra da unidade.

  • dir
    Caminho do diretório, incluindo a barra à direita.Barras ( / ), barras invertidas ( \ ), ou ambos podem ser usados.Você pode passar NULL para esse parâmetro se você não precisar o caminho do diretório.

  • fname
    Nome do arquivo base (sem extensão).Você pode passar NULL para esse parâmetro se você não precisar o nome do arquivo.

  • ext
    Extensão de nome de arquivo, incluindo líderes de período (.).Você pode passar NULL para esse parâmetro se você não precisar a extensão de nome de arquivo.

Comentários

O _splitpath função divide um caminho em quatro componentes._splitpathmanipula automaticamente os argumentos de seqüência de caracteres multibyte conforme apropriado, reconhecendo as seqüências de caracteres multibyte de acordo com para a página de código multibyte atualmente em uso._wsplitpathé uma versão de caractere largo de _splitpath; os argumentos para _wsplitpath são seqüências de caracteres largos.Essas funções se comportam exatamente caso contrário.

Observação de segurança essas funções incorrem em uma ameaça potencial trazida por um problema de saturação de buffer.Problemas de saturação do buffer são um método freqüente de ataque do sistema, resultando em uma injustificadas elevação de privilégio.Para obter mais informações, consulte Evitando saturações de Buffer.Versões mais seguras dessas funções estão disponíveis; consulte _splitpath_s, _wsplitpath_s.

Mapeamentos de rotina de texto genérico

TCHAR.Rotina H

_ Unicode & _ MBCS do arquivo não definido

_ MBCS do arquivo definido

_ Unicode definido

_tsplitpath

_splitpath

_splitpath

_wsplitpath

Cada componente do caminho completo é armazenado em um buffer separado; as constantes de manifesto _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, e _MAX_EXT (definido em STDLIB.H) Especifica o tamanho máximo para cada componente do arquivo.Componentes de arquivos maiores que as constantes de manifesto correspondentes causam corrupção de heap.

Cada buffer deve ser tão grande quanto a sua constante de manifesto correspondente para evitar possível saturação de buffer.

A tabela a seguir lista os valores das constantes manifesto.

Nome

Valor

_MAX_DRIVE

3

_MAX_DIR

256

_MAX_FNAME

256

_MAX_EXT

256

Se o caminho completo não contiver um componente (por exemplo, um nome de arquivo), _splitpath atribui esvaziar seqüências de caracteres para os buffers correspondentes.

Você pode passar NULL para _splitpath para qualquer parâmetro diferente de path que não são necessários.

Se path é NULL, o manipulador de parâmetro inválido é invocado, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, errno for definido como EINVAL e a função retornará EINVAL.

Requisitos

Rotina

Cabeçalho necessário

_splitpath

<stdlib.h>

_wsplitpath

<stdlib.h> ou <wchar.h>

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

Exemplo

Consulte o exemplo para _makepath.

Equivalência do .NET Framework

Não aplicável. Para chamar a função c padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Manipulação de arquivos

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp

_splitpath_s, _wsplitpath_s