Following test is done with "Ubuntu EGLIBC 2.12.1-0ubuntu9"
Based on my simple test, 'select' function is poor to validate file descriptor.
In my test, select doesn't return error (-1) even for file descriptor 99999. Some times process is crashed - segment fault.
So, file descriptor should be validated before calling 'select'.
(I think I need to look into more about this. These are based on just test. So I'm not 100% sure about this.)
There is lot's of way. Here is well-known way.
is_valid_fd(int fd) { fcntl(fd, F_GETFL) != -1 || errno != EBADF; }
Summay. Be careful using 'select'!
'Language > C&C++' 카테고리의 다른 글
[C/C++][Linux] Tips about LD_PRELOAD (0) | 2010.12.13 |
---|---|
[C/C++][linux] redirect standard io with pipe in code. (0) | 2010.12.10 |
[C/C++] Encapsulation tip in C. (0) | 2010.11.12 |
[C/C++] Tips and Memos (0) | 2010.11.12 |
[C/C++] Getting return address… (0) | 2010.11.03 |