feature: add platform-specific path separator functions for Unix and Windows
This commit is contained in:
parent
05f5933111
commit
c43748d1d4
3 changed files with 30 additions and 1 deletions
|
|
@ -132,6 +132,25 @@ typedef struct fs_dir_entry
|
||||||
drang_fs_type_t type; /**< Entry type */
|
drang_fs_type_t type; /**< Entry type */
|
||||||
} drang_fs_dir_entry_t;
|
} drang_fs_dir_entry_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Gets the platform-specific path separator character.
|
||||||
|
*
|
||||||
|
* Returns the character used to separate path components on the current platform.
|
||||||
|
* This is typically '/' on Unix-like systems (Linux, macOS) and '\' on Windows.
|
||||||
|
*
|
||||||
|
* @return Platform-specific path separator character.
|
||||||
|
* @retval '/' On Unix-like systems (Linux, macOS, BSD, etc.).
|
||||||
|
* @retval '\' On Windows systems.
|
||||||
|
* @remarks This function is useful for constructing portable file paths.
|
||||||
|
* The returned character should be used when manually building paths
|
||||||
|
* or when parsing path strings in a platform-aware manner.
|
||||||
|
* For portable path construction, consider using this function instead
|
||||||
|
* of hardcoding separator characters.
|
||||||
|
*/
|
||||||
|
DRANG_PLATFORM_API char drang_fs_path_separator(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Opens a file with specified access mode.
|
* @brief Opens a file with specified access mode.
|
||||||
*
|
*
|
||||||
|
|
@ -187,7 +206,7 @@ DRANG_PLATFORM_API int drang_fs_close(drang_fs_file_t *file);
|
||||||
* @retval DRANG_EIO I/O error occurred during reading.
|
* @retval DRANG_EIO I/O error occurred during reading.
|
||||||
* @retval DRANG_EPERM File not opened for reading.
|
* @retval DRANG_EPERM File not opened for reading.
|
||||||
* @remarks Reading beyond end of file is not an error - bytes_read will indicate
|
* @remarks Reading beyond end of file is not an error - bytes_read will indicate
|
||||||
* actual bytes read. File position advances by bytes read.
|
* actual bytes read. File position advances to bytes read.
|
||||||
*/
|
*/
|
||||||
DRANG_PLATFORM_API int drang_fs_read(drang_fs_file_t *file, void *buffer, size_t count, size_t size, size_t *bytes_read);
|
DRANG_PLATFORM_API int drang_fs_read(drang_fs_file_t *file, void *buffer, size_t count, size_t size, size_t *bytes_read);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,11 @@ static int drang_permissions_to_linux(const drang_fs_permissions_t permissions)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char drang_fs_separator(void)
|
||||||
|
{
|
||||||
|
return '/';
|
||||||
|
}
|
||||||
|
|
||||||
int drang_fs_open(const char *path, drang_fs_mode_t mode, drang_fs_file_t **out_file)
|
int drang_fs_open(const char *path, drang_fs_mode_t mode, drang_fs_file_t **out_file)
|
||||||
{
|
{
|
||||||
struct drang_fs_file *file = NULL;
|
struct drang_fs_file *file = NULL;
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,11 @@ static void mode_to_access(drang_fs_mode_t mode, DWORD *out_access, DWORD *out_c
|
||||||
*out_creation = creation;
|
*out_creation = creation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char drang_fs_path_separator(void)
|
||||||
|
{
|
||||||
|
return '\\';
|
||||||
|
}
|
||||||
|
|
||||||
int drang_fs_open(const char *path, drang_fs_mode_t mode, drang_fs_file_t **out_file)
|
int drang_fs_open(const char *path, drang_fs_mode_t mode, drang_fs_file_t **out_file)
|
||||||
{
|
{
|
||||||
struct drang_fs_file *file = NULL;
|
struct drang_fs_file *file = NULL;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue