vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Fri Apr 22 00:11:34 2016 +0300| [582355f9654ab8bbdc9069738c47d8e55664afd7] | committer: Rémi Denis-Courmont
src: add vlc_close() wrapper > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=582355f9654ab8bbdc9069738c47d8e55664afd7 --- include/vlc_fs.h | 22 ++++++++++++++++++++++ src/os2/filesystem.c | 5 +++++ src/posix/filesystem.c | 5 +++++ src/win32/filesystem.c | 5 +++++ 4 files changed, 37 insertions(+) diff --git a/include/vlc_fs.h b/include/vlc_fs.h index 69bd743..8fda513 100644 --- a/include/vlc_fs.h +++ b/include/vlc_fs.h @@ -140,6 +140,28 @@ VLC_API ssize_t vlc_write(int, const void *, size_t); VLC_API ssize_t vlc_writev(int, const struct iovec *, int); /** + * Closes a file descriptor. + * + * This closes a file descriptor. If this is a last file descriptor for the + * underlying open file, the file is closed too; the exact semantics depend + * on the type of file. + * + * @note The file descriptor is always closed when the function returns, even + * if the function returns an error. The sole exception is if the file + * descriptor was not currently valid, and thus cannot be closed (errno will + * then be set to EBADF). + * + * @param fd file descriptor + * @return Normally, zero is returned. + * If an I/O error is detected before or while closing, the function may return + * -1. Such an error is unrecoverable since the descriptor is closed. + * + * A nul return value does not necessarily imply that all pending I/O + * succeeded, since I/O might still occur asynchronously afterwards. + */ +VLC_API int vlc_close(int fd); + +/** * @} */ diff --git a/src/os2/filesystem.c b/src/os2/filesystem.c index 256b9cc..bbb4ab3 100644 --- a/src/os2/filesystem.c +++ b/src/os2/filesystem.c @@ -86,6 +86,11 @@ int vlc_memfd (void) return -1; } +int vlc_close (int fd) +{ + return close (fd); +} + int vlc_mkdir (const char *dirname, mode_t mode) { char *locname = ToLocaleDup (dirname); diff --git a/src/posix/filesystem.c b/src/posix/filesystem.c index a0536e0..dd516e1 100644 --- a/src/posix/filesystem.c +++ b/src/posix/filesystem.c @@ -132,6 +132,11 @@ int vlc_memfd (void) return fd; } +int vlc_close (int fd) +{ + return close (fd); +} + int vlc_mkdir (const char *dirname, mode_t mode) { return mkdir (dirname, mode); diff --git a/src/win32/filesystem.c b/src/win32/filesystem.c index f05aa5d5..29a7a3f 100644 --- a/src/win32/filesystem.c +++ b/src/win32/filesystem.c @@ -124,6 +124,11 @@ int vlc_memfd (void) #endif } +int vlc_close (int fd) +{ + return close (fd); +} + int vlc_mkdir( const char *dirname, mode_t mode ) { wchar_t *wpath = widen_path (dirname); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
