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