os_calls: Add g_file_is_open()
This commit is contained in:
parent
563cfaf009
commit
ff24984cf3
@ -2160,6 +2160,13 @@ g_file_close(int fd)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
int
|
||||||
|
g_file_is_open(int fd)
|
||||||
|
{
|
||||||
|
return (fcntl(fd, F_GETFD) >= 0);
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* read from file, returns the number of bytes read or -1 on error */
|
/* read from file, returns the number of bytes read or -1 on error */
|
||||||
int
|
int
|
||||||
|
@ -210,6 +210,12 @@ int g_file_open(const char *file_name);
|
|||||||
int g_file_open_ex(const char *file_name, int aread, int awrite,
|
int g_file_open_ex(const char *file_name, int aread, int awrite,
|
||||||
int acreate, int atrunc);
|
int acreate, int atrunc);
|
||||||
int g_file_close(int fd);
|
int g_file_close(int fd);
|
||||||
|
/**
|
||||||
|
* Returns 1 if a file is open (i.e. the file descriptor is valid)
|
||||||
|
* @param fd File descriptor
|
||||||
|
* @return 1 for file open, 0 for not open
|
||||||
|
*/
|
||||||
|
int g_file_is_open(int fd);
|
||||||
int g_file_read(int fd, char *ptr, int len);
|
int g_file_read(int fd, char *ptr, int len);
|
||||||
int g_file_write(int fd, const char *ptr, int len);
|
int g_file_write(int fd, const char *ptr, int len);
|
||||||
int g_file_seek(int fd, int offset);
|
int g_file_seek(int fd, int offset);
|
||||||
|
@ -262,6 +262,23 @@ START_TEST(test_g_file_get_open_fds)
|
|||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
START_TEST(test_g_file_is_open)
|
||||||
|
{
|
||||||
|
int devzerofd = g_file_open("/dev/zero");
|
||||||
|
ck_assert(devzerofd >= 0);
|
||||||
|
|
||||||
|
// Check open file comes up as open
|
||||||
|
ck_assert_int_ne(g_file_is_open(devzerofd), 0);
|
||||||
|
|
||||||
|
g_file_close(devzerofd);
|
||||||
|
|
||||||
|
// Check the now-closed file no longer registers as open
|
||||||
|
ck_assert_int_eq(g_file_is_open(devzerofd), 0);
|
||||||
|
}
|
||||||
|
END_TEST
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
START_TEST(test_g_sck_fd_passing)
|
START_TEST(test_g_sck_fd_passing)
|
||||||
{
|
{
|
||||||
@ -448,6 +465,7 @@ make_suite_test_os_calls(void)
|
|||||||
#endif
|
#endif
|
||||||
tcase_add_test(tc_os_calls, test_g_file_cloexec);
|
tcase_add_test(tc_os_calls, test_g_file_cloexec);
|
||||||
tcase_add_test(tc_os_calls, test_g_file_get_open_fds);
|
tcase_add_test(tc_os_calls, test_g_file_get_open_fds);
|
||||||
|
tcase_add_test(tc_os_calls, test_g_file_is_open);
|
||||||
tcase_add_test(tc_os_calls, test_g_sck_fd_passing);
|
tcase_add_test(tc_os_calls, test_g_sck_fd_passing);
|
||||||
tcase_add_test(tc_os_calls, test_g_sck_fd_overflow);
|
tcase_add_test(tc_os_calls, test_g_sck_fd_overflow);
|
||||||
return s;
|
return s;
|
||||||
|
Loading…
Reference in New Issue
Block a user