diff options
-rw-r--r-- | libopkg/file_util.c | 11 | ||||
-rw-r--r-- | libopkg/file_util.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/libopkg/file_util.c b/libopkg/file_util.c index 897546e..82578bd 100644 --- a/libopkg/file_util.c +++ b/libopkg/file_util.c @@ -55,6 +55,17 @@ file_is_dir(const char *file_name) return S_ISDIR(st.st_mode); } +int +file_is_symlink(const char *file_name) +{ + struct stat st; + + if (lstat(file_name, &st) == -1) + return 0; + + return S_ISLNK(st.st_mode); +} + /* read a single line from a file, stopping at a newline or EOF. If a newline is read, it will appear in the resulting string. Return value is a malloc'ed char * which should be freed at diff --git a/libopkg/file_util.h b/libopkg/file_util.h index d4ae05f..f4a9b75 100644 --- a/libopkg/file_util.h +++ b/libopkg/file_util.h @@ -24,6 +24,7 @@ extern "C" { int file_exists(const char *file_name); int file_is_dir(const char *file_name); +int file_is_symlink(const char *file_name); char *file_read_line_alloc(FILE *file); int file_move(const char *src, const char *dest); int file_copy(const char *src, const char *dest); |