Strings in C are tried to be saved in the .rodata by the compiler/linker. This section is readonly as the name suggests. Pointer to these strings should therefore be const.
Signed-off-by: Sven Eckelmann sven@narfation.org --- functions.c | 8 +++++--- functions.h | 5 +++-- 2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/functions.c b/functions.c index 2a2f392..bd4da59 100644 --- a/functions.c +++ b/functions.c @@ -124,7 +124,8 @@ int file_exists(const char *fpath) return stat(fpath, &st) == 0; }
-static void file_open_problem_dbg(char *dir, char *fname, char *full_path) +static void file_open_problem_dbg(const char *dir, const char *fname, + const char *full_path) { const char **ptr; struct stat st; @@ -162,7 +163,7 @@ static void file_open_problem_dbg(char *dir, char *fname, char *full_path) } }
-int read_file(char *dir, char *fname, int read_opt, +int read_file(const char *dir, const char *fname, int read_opt, float orig_timeout, float watch_interval, size_t header_lines) { struct ether_addr *mac_addr; @@ -296,7 +297,8 @@ out: return res; }
-int write_file(char *dir, char *fname, char *arg1, char *arg2) +int write_file(const char *dir, const char *fname, const char *arg1, + const char *arg2) { int fd = 0, res = EXIT_FAILURE; char full_path[500]; diff --git a/functions.h b/functions.h index d88c494..f9c8191 100644 --- a/functions.h +++ b/functions.h @@ -34,9 +34,10 @@ char *ether_ntoa_long(const struct ether_addr *addr); char *get_name_by_macaddr(struct ether_addr *mac_addr, int read_opt); char *get_name_by_macstr(char *mac_str, int read_opt); int file_exists(const char *fpath); -int read_file(char *dir, char *path, int read_opt, +int read_file(const char *dir, const char *path, int read_opt, float orig_timeout, float watch_interval, size_t header_lines); -int write_file(char *dir, char *fname, char *arg1, char *arg2); +int write_file(const char *dir, const char *fname, const char *arg1, + const char *arg2); struct ether_addr *translate_mac(char *mesh_iface, struct ether_addr *mac); struct ether_addr *resolve_mac(const char *asc);