diff options
| author | heyuanjie <heyuanjie> | 2018-08-12 20:26:16 +0800 |
|---|---|---|
| committer | heyuanjie <heyuanjie> | 2018-08-12 20:26:16 +0800 |
| commit | fd209cb880f6d2d39b6265c09727182b55446bdf (patch) | |
| tree | 90f55537819432f1e16e912a6bf2f8c7735e7736 /components/dfs/src | |
| parent | 68edd04cbbd996cb80d935f40e4f90d3742bfbc6 (diff) | |
[lwp]添加select系统调用
Diffstat (limited to 'components/dfs/src')
| -rw-r--r-- | components/dfs/src/select.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/components/dfs/src/select.c b/components/dfs/src/select.c index c727763991..8b4e417f28 100644 --- a/components/dfs/src/select.c +++ b/components/dfs/src/select.c @@ -28,6 +28,19 @@ #include <dfs_poll.h> #include <dfs_select.h> +static void fdzero(fd_set *set, int nfds) +{ + fd_mask *m; + int n; + + m = (fd_mask*)set; + for (n = 0; n < nfds; n += sizeof(fd_mask)) + { + rt_memset(m, 0, sizeof(fd_mask)); + m ++; + } +} + int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout) { int fd; @@ -113,17 +126,17 @@ int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struc /* Now set up the return values */ if (readfds) { - memset(readfds, 0, sizeof(fd_set)); + fdzero(readfds, nfds); } if (writefds) { - memset(writefds, 0, sizeof(fd_set)); + fdzero(writefds, nfds); } if (exceptfds) { - memset(exceptfds, 0, sizeof(fd_set)); + fdzero(exceptfds, nfds); } /* Convert the poll descriptor list back into selects 3 bitsets */ |
