Udostępnij za pośrednictwem


_splitpath, _wsplitpath

Nazwa ścieżki należy podzielić składniki.Bardziej bezpieczne wersje tych funkcji są dostępne w _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 
);

Parametry

  • path
    Pełna ścieżka.

  • drive
    Dysków z dopisanym znakiem dwukropka (:).Można przekazać NULL dla tego parametru, jeśli nie ma potrzeby literę dysku.

  • dir
    Ścieżka do katalogu, w tym kreskę ułamkową odwróconą.Kreska ułamkowa ( / ), kreski ułamkowe odwrócone ( \ ), lub mogą być używane.Można przekazać NULL dla tego parametru, jeśli nie ma potrzeby ścieżkę katalogu.

  • fname
    Bazowa nazwa pliku (bez rozszerzenia).Można przekazać NULL dla tego parametru, jeśli nie ma potrzeby nazwę pliku.

  • ext
    Rozszerzenie nazwy pliku, w tym okresie wiodący (.).Można przekazać NULL dla tego parametru, jeśli nie ma potrzeby rozszerzenie nazwy pliku.

Uwagi

_splitpath Funkcja dzieli ścieżkę na jego cztery elementy._splitpathautomatycznie obsługuje argumenty ciąg znaków wielobajtowych odpowiednio, uznając sekwencje znaków wielobajtowych według strona kodowa wielobajtowych obecnie w użyciu._wsplitpath to wersja znaku dwubajtowego _splitpath; argumenty do _wsplitpath to ciągi znaku dwubajtowego.W innych przypadkach funkcje te zachowują się identycznie.

Uwaga dotycząca zabezpieczeń Te funkcje wiążą się z potencjalnym zagrożeniem spowodowanym ulepszonym problem przepełnienia buforu.Problemy z przepełnieniem buforu są częstą metodą ataku systemu, powodując nieuzasadnione podniesienie poziomu uprawnień.Aby uzyskać więcej informacji, zobacz unikanie przekroczenia buforu.Bezpieczniejsze wersje te funkcje są dostępne; zobacz _splitpath_s, _wsplitpath_s.

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE & _MBCS nie zdefiniowano

_MBCS zdefiniowano

_UNICODE zdefiniowany

_tsplitpath

_splitpath

_splitpath

_wsplitpath

Każdy składnik Pełna ścieżka jest przechowywany w buforze oddzielne; stałe manifestu _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, i _MAX_EXT (które zdefiniowano w STDLIB.H) określ rozmiar maksymalny dla każdego składnika pliku.Składniki plików, które są większe niż odpowiednie stałe manifestu spowodować uszkodzenie sterty.

Bufor każdego musi być tak duży, jak ich odpowiednich manifestu stałych, aby uniknąć potencjalnych przepełnienia buforu.

Poniższa tabela zawiera listę wartości stałych manifestu.

Nazwa

Wartość

_MAX_DRIVE

3

_MAX_DIR

256

_MAX_FNAME

256

_MAX_EXT

256

Jeśli pełna ścieżka nie zawiera składników (na przykład nazwę pliku), _splitpath przypisuje puste ciągi do odpowiedniego buforów.

Można przekazać NULL do _splitpath dla każdego parametru, innych niż path , że nie ma potrzeby.

Jeśli wskaźnik path ma wartość NULL, zostanie wywołany nieprawidłowy parametr uchwytu wskaźnika, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowane, errno jest ustawione jako EINVAL, a funkcja zwraca EINVAL.

Wymagania

Procedura

Wymagany nagłówek

_splitpath

<stdlib.h>

_wsplitpath

<stdlib.h> lub <wchar.h>

Dodatkowe informacje o zgodności – zobacz: Zgodność we Wprowadzeniu.

Przykład

Zobacz przykład dla _makepath.

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardową funkcję C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywoływania platformy.

Zobacz też

Informacje

Obsługa plików

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp

_splitpath_s, _wsplitpath_s