_splitpath, _wsplitpath
Nazwa ścieżki należy podzielić na składniki.Bezpieczniejsze wersje te funkcje są dostępne, zobacz _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
Drive litera, po której następuje dwukropek (:).Można przekazać NULL dla tego parametru, jeśli nie potrzebujesz literę dysku.dir
Ścieżka katalogu, w tym kreskę ułamkową odwróconą.Przesyła ukośniki ( / ), ukośników odwrotnych ( \ ), lub mogą być używane.Można przekazać NULL dla tego parametru, jeśli nie potrzebujesz ścieżki katalogu.fname
Nazwa podstawowej (bez rozszerzenia).Można przekazać NULL dla tego parametru, jeśli nie potrzebujesz nazwę pliku.ext
Rozszerzenie nazwy pliku, łącznie z okresu prowadzące (.).Można przekazać NULL dla tego parametru, jeśli nie potrzebujesz rozszerzenie nazwy pliku.
Uwagi
_splitpath Funkcja dzieli ścieżkę, na jego cztery składniki._splitpathautomatycznie obsługuje argumentów łańcuch znaków wielobajtowych, odpowiednio, uznając sekwencje znaków wielobajtowych, zgodnie z obecnie używanej strony kodowej wielobajtowych._wsplitpathjest to wersja szerokich znaków _splitpath; argumenty do _wsplitpath są ciągami szerokich znaków.Te funkcje działają identycznie inaczej.
Uwaga zabezpieczeń funkcje te ponoszą potencjalnym zagrożeniem spowodowanym problem przepełnienia buforu.Przepełnienie buforu problemy są często metodą ataku systemu, wynikającej z nieuzasadnionego podniesienie uprawnień w.Aby uzyskać więcej informacji, zobacz Overruns buforu unikanie.Bezpieczniejsze wersje te funkcje są dostępne; zobacz _splitpath_s, _wsplitpath_s.
Tekst rodzajowy rutynowych mapowania
TCHAR.Rutynowe H |
_UNICODE & Nie zdefiniowano _MBCS |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tsplitpath |
_splitpath |
_splitpath |
_wsplitpath |
Każdy składnik Pełna ścieżka jest przechowywany w oddzielnych buforu; stałe manifestu _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, i _MAX_EXT (zdefiniowaną w STDLIB.H) określ rozmiar maksymalny dla każdego składnika pliku.Składniki pliku, które są większe niż odpowiadające im stałe manifestu spowodować uszkodzenie sterty.
Bufor każdego musi być tak duży, jak odpowiadające im stałą manifestu do uniknięcia potencjalnych przepełnienie buforu.
Poniższa lista zawiera 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 zawiera składnik (na przykład nazwa 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 path jest NULL, wywoływana jest funkcja obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie jest dozwolone, aby kontynuować, errno jest ustawiona na EINVAL i funkcja zwraca EINVAL.
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_splitpath |
<stdlib.h> |
_wsplitpath |
<stdlib.h> lub <wchar.h> |
Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
Przykład
Zobacz przykład dla _makepath.
Odpowiednik w programie .NET Framework
Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.