File handling.
More...
#include "dist/sds/sds.h"
#include <stdbool.h>
#include <stdio.h>
Go to the source code of this file.
|
| enum | testdir_status { DIR_EXISTS = 0
, DIR_CREATED = 1
, DIR_CREATE_FAILED = 2
, DIR_NOT_EXISTS = 3
} |
| enum | try_rm_file_status { RM_FILE_OK = 0
, RM_FILE_ENOENT = 1
, RM_FILE_ERROR = 2
} |
◆ testdir_status
◆ try_rm_file_status
Status of file remove function
◆ clean_directory()
| bool clean_directory |
( |
const char * | dir_name | ) |
|
Removes all regular files from a directory
- Parameters
-
| dir_name | directory to cleanup |
- Returns
- true on success, else false
◆ clean_rm_directory()
| bool clean_rm_directory |
( |
const char * | dir_name | ) |
|
Shortcut for clean_directory and rm_directory
- Parameters
-
| dir_name | directory to cleanup and remove |
- Returns
- true on success, else false
◆ create_tmp_file()
| bool create_tmp_file |
( |
const char * | filepath | ) |
|
Creates a file in specified path if it does not exists.
- Parameters
-
| filepath | filepath to create |
- Returns
- bool true on success, else false
◆ get_mtime()
| time_t get_mtime |
( |
const char * | filepath | ) |
|
Returns the modification time of a file
- Parameters
-
- Returns
- time_t modification time
◆ is_dir()
| bool is_dir |
( |
const char * | dir_name | ) |
|
Checks if dir_name is really a directory entry
- Parameters
-
| dir_name | directory path to check |
- Returns
- true if it is a directory, else false
◆ open_tmp_file()
| FILE * open_tmp_file |
( |
sds | filepath | ) |
|
Opens a temporary file for write using mkstemp
- Parameters
-
| filepath | filepath to open, e.g. /tmp/test.XXXXXX XXXXXX is replaced with a random string |
- Returns
- FILE pointer
◆ rename_file()
| bool rename_file |
( |
const char * | src, |
|
|
const char * | dst ) |
Renames a file. src and dst must be in the same filesystem.
- Parameters
-
| src | source filename |
| dst | destination filename |
- Returns
- true on success, else false
◆ rename_tmp_file()
| bool rename_tmp_file |
( |
FILE * | fp, |
|
|
sds | tmp_file, |
|
|
bool | write_rc ) |
Closes the tmp file and moves it to its destination name This is done by removing the last 7 characters from the tmp_file. See open_tmp_file for corresponding open function.
- Parameters
-
| fp | FILE pointer |
| tmp_file | tmp file to close and move |
| write_rc | if false tmp file will be removed |
- Returns
- true on success else false
◆ rm_directory()
| bool rm_directory |
( |
const char * | dir_name | ) |
|
Removes a directory and reports errors
- Parameters
-
| dir_name | directory to remove |
- Returns
- true on success, else false
◆ rm_file()
| bool rm_file |
( |
const char * | filepath | ) |
|
Removes a file and reports all errors
- Parameters
-
| filepath | filepath to remove |
- Returns
- true on success else false
◆ testdir()
| int testdir |
( |
const char * | desc, |
|
|
const char * | dir_name, |
|
|
bool | create, |
|
|
bool | silent ) |
Checks if dir exists
- Parameters
-
| desc | descriptive name |
| dir_name | directory path to check |
| create | true creates the directory |
| silent | true to report only errors |
- Returns
- enum testdir_status
◆ testfile_read()
| bool testfile_read |
( |
const char * | filename | ) |
|
Checks if a filename can be opened read-only
- Parameters
-
| filename | filename to check |
- Returns
- true on success, else false
◆ try_rm_file()
| int try_rm_file |
( |
const char * | filepath | ) |
|
Removes a file and ignores none existing error
- Parameters
-
| filepath | filepath to remove |
- Returns
- RM_FILE_ENOENT if file does not exist RM_FILE_ERROR error from unlink call RM_FILE_OK file was removed
◆ update_mtime()
| bool update_mtime |
( |
const char * | filename | ) |
|
Updates the timestamp of a file
- Parameters
-
| filename | file to update the timestamp |
- Returns
- true on success, else false
◆ write_data_to_file()
| bool write_data_to_file |
( |
const char * | filepath, |
|
|
const char * | data, |
|
|
size_t | data_len ) |
Writes data to a file
- Parameters
-
| filepath | filepath to write to |
| data | data to write |
| data_len | data length to write |
- Returns
- true on success else false