#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <dirent.h>
#include <fnmatch.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <limits.h>
#include "op_file.h"
#include "op_libiberty.h"
Go to the source code of this file.
Defines | |
#define | NO_MATCH 0 |
#define | MATCH 1 |
Functions | |
int | op_file_readable (char const *file) |
time_t | op_get_mtime (char const *file) |
int | create_dir (char const *dir) |
int | create_path (char const *path) |
static int | is_dot_or_dotdot (char const *name) |
static char * | make_pathname_from_dirent (char const *basedir, struct dirent *ent, struct stat *st_buf) |
int | get_matching_pathnames (void *name_list, get_pathname_callback getpathname, char const *base_dir, char const *filter, enum recursion_type recursion) |
Useful file management helpers
Definition in file op_file.c.
#define MATCH 1 |
Referenced by get_matching_pathnames().
#define NO_MATCH 0 |
Referenced by get_matching_pathnames().
int create_dir | ( | char const * | dir | ) |
create_dir - create a directory
dir | the directory name to create |
Returns 0 on success.
Definition at line 44 of file op_file.c.
Referenced by check_and_create_config_dir(), and create_path().
int create_path | ( | char const * | path | ) |
create_path - create a path
path | the path to create |
create directory for each dir components in path the last path component is not considered as a directory but as a filename
Returns 0 on success.
Definition at line 57 of file op_file.c.
References create_dir().
Referenced by opd_open_24_sample_file(), opd_open_sample_file(), and operf_open_sample_file().
int get_matching_pathnames | ( | void * | name_list, | |
get_pathname_callback | , | |||
char const * | base_dir, | |||
char const * | filter, | |||
enum recursion_type | recursion | |||
) |
name_list | where to store result | |
get_pathname_callback | client-provided callback function | |
base_dir | directory from where lookup starts | |
filter | a pathname filter | |
recursion | recursion_type -- see above enum and following description: NO_RECURSION: Find matching files from passed base_dir and call get_pathname_callback to add entry to name_list to be returned. MATCH_ANY_ENTRY_RECURSION: Starting at base_dir, for each entry in the dir that matches the filter: if entry is of type 'dir', recurse; else call get_pathname_callback to add entry to name_list to be returned. MATCH_DIR_ONLY_RECURSION: Starting at base_dir, if an entry in the dir is of type 'dir' and its complete pathname contains a match to the filter, call get_pathname_callback to add entry to name_list to be returned; else recurse. |
Returns 0 on success.
Return a list of pathnames under base_dir, filtered by filter and optionally looking in sub-directory. See description above of the recursion_type parameter for more details. NOTE: For C clients: Your implementation of the get_pathname_callback function will probably dynamically allocate storage for elements added to name_list. If so, remember to free that memory when it's no longer needed.
Definition at line 115 of file op_file.c.
References get_matching_pathnames(), is_dot_or_dotdot(), make_pathname_from_dirent(), MATCH, MATCH_ANY_ENTRY_RECURSION, MATCH_DIR_ONLY_RECURSION, NO_MATCH, and NO_RECURSION.
Referenced by create_file_list(), get_matching_pathnames(), and op_process_jit_dumpfiles().
static int is_dot_or_dotdot | ( | char const * | name | ) | [inline, static] |
Definition at line 78 of file op_file.c.
Referenced by get_matching_pathnames().
static char* make_pathname_from_dirent | ( | char const * | basedir, | |
struct dirent * | ent, | |||
struct stat * | st_buf | |||
) | [static] |
Definition at line 88 of file op_file.c.
Referenced by get_matching_pathnames().
int op_file_readable | ( | char const * | file | ) |
op_file_readable - is a file readable
file | file name |
Return true if the given file is readable and regular.
Beware of race conditions !
Definition at line 26 of file op_file.c.
Referenced by copy_file(), op_file_readable(), op_file_readable_tests(), op_get_interface(), op_write_lock_file(), oprof_start::oprof_start(), and oprof_start::save_config().
time_t op_get_mtime | ( | char const * | file | ) |
op_get_mtime - get mtime of file
file | file name |
Returns the mtime of the given file or 0 on failure
Definition at line 33 of file op_file.c.
Referenced by check_mtime(), opd_new_image(), opd_open_sample_file(), and operf_open_sample_file().