_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.