Compartilhar via


_splitpath, _wsplitpath

Interromper um nome de caminho em componentes. Estão disponíveis 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 de unidade, seguido por dois-pontos (:). Você pode passar NULL para este parâmetro se você não precisar mais da letra da unidade.

  • dir
    Caminho de diretório, inclusive a barra à direita. As barras ( / ), as barras invertidas ( \ ), ou ambos podem ser usadas. Você pode passar NULL para este parâmetro se você não precisa do caminho de diretório.

  • fname
    Nome de arquivo base (nenhuma extensão). Você pode passar NULL para este parâmetro se você não precisa do nome de arquivo.

  • ext
    Extensão de nome de arquivo, incluindo período principal (.). Você pode passar NULL para este parâmetro se você não precisar mais da extensão de nome de arquivo.

Comentários

A função de _splitpath interrompe um caminho nos quatro componentes. _splitpath controla automaticamente argumentos de cadeia de caracteres de multibyte- caracteres conforme apropriado, confirmando sequências de multibyte- caractere de acordo com a página de código de multibyte atualmente em uso. _wsplitpath é uma versão de caractere largo de _splitpath; os argumentos para _wsplitpath são cadeias de caractere amplo. Essas funções se comportam exatamente o contrário.

Observação sobre segurança    Essas funções incorrem uma ameaça potencialmente causado por um problema de excesso de buffer. Problemas de saturação de buffer é um método frequente de ataque do sistema, resultando em elevação injustificável 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 da rotina de texto genérico

Rotina TCHAR.H

_UNICODE & _MBCS não definido

_MBCS definido

_UNICODE definido

_tsplitpath

_splitpath

_splitpath

_wsplitpath

Cada componente do caminho completo é armazenado em um buffer separado; as constantes manifestas _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, e _MAX_EXT () definido em STDLIB.H especificar o tamanho máximo de cada componente do arquivo. Arquiva os componentes que são maiores que o dano manifesto correspondente do heap da causa das constantes.

Cada buffer deve ser tão grande quanto a constante manifesta correspondente a evitar excesso potencial do buffer.

A tabela a seguir lista os valores de constantes manifestas.

Nome

Valor

_MAX_DRIVE

3

_MAX_DIR

256

_MAX_FNAME

256

_MAX_EXT

256

Se o caminho completo não tiver um componente (por exemplo, um nome de arquivo), _splitpath atribui cadeias de caracteres vazias para os buffers correspondentes.

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

Se path é NULL, o parâmetro de manipulador inválido é invocado, como descrito em Validação do parâmetro. Se a execução puder continuar, errno será 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 informações adicionais de compatibilidade, consulte Compatibilidade na Introdução.

Exemplo

Consulte o exemplo de _makepath.

Equivalência do .NET Framework

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

Consulte também

Referência

Manipulação de arquivos

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp

_splitpath_s, _wsplitpath_s