From 8c438cacdfa3742922f94f81d756383e71d49226 Mon Sep 17 00:00:00 2001 From: Paul Barker Date: Sun, 16 Feb 2014 18:26:48 -0500 Subject: file_util: Add file_is_symlink function This function should be pretty self explanatory Signed-off-by: Paul Barker --- (limited to 'libopkg') 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); -- cgit v0.9.1