Partager via


_splitpath, _wsplitpath

Break a path name into components. More secure versions of these functions are available, see _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 
);

Parameters

  • path
    Full path

  • drive
    Optional drive letter, followed by a colon (:)

  • dir
    Optional directory path, including trailing slash. Forward slashes ( / ), backslashes ( \ ), or both may be used.

  • fname
    Base filename (no extension)

  • ext
    Optional filename extension, including leading period (.)

Remarks

The _splitpath function breaks a path into its four components. _splitpath automatically handles multibyte-character string arguments as appropriate, recognizing multibyte-character sequences according to the multibyte code page currently in use. _wsplitpath is a wide-character version of _splitpath; the arguments to _wsplitpath are wide-character strings. These functions behave identically otherwise

Security Note    These functions incur a potential threat brought about by a buffer overrun problem. Buffer overrun problems are a frequent method of system attack, resulting in an unwarranted elevation of privilege. For more information, see Avoiding Buffer Overruns. More secure versions of these functions are availalble; see _splitpath_s, _wsplitpath_s.

Generic-Text Routine Mappings

TCHAR.H routine

_UNICODE & _MBCS not defined

_MBCS defined

_UNICODE defined

_tsplitpath

_splitpath

_splitpath

_wsplitpath

Each argument is stored in a buffer; the manifest constants _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, and _MAX_EXT (defined in STDLIB.H) specify the maximum size necessary for each buffer. The other arguments point to buffers used to store the path elements. After a call to _splitpath is executed, these arguments contain empty strings for components not found in path. You can pass a NULL pointer to _splitpath for any component you don't need.

If path is NULL, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue, errno is set to EINVAL and the function returns EINVAL.

Requirements

Routine

Required header

_splitpath

<stdlib.h>

_wsplitpath

<stdlib.h> or <wchar.h>

For additional compatibility information, see Compatibility in the Introduction.

Example

See the example for _makepath.

.NET Framework Equivalent

Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.

See Also

Concepts

File Handling

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp