Per Jessen wrote:
Anders Johansson wrote:
Per Jessen wrote:
right2=dup(right); fcntl( right, F_SETFL, O_NONBLOCK );
File status flags are shared between dup()licated file descriptors, so this operation sets both to O_NONBLOCK. Could this answer your problem?
Yeah, that would explain it, except when I do fcntl( GET_FL ) to read the setting of right2 it doesn't report nonblocking? Are you sure the flags are shared? They should be _copied_ with dup(), but the a change of flags on one filedescriptor is copied to another, that doesn't sound right - to me anyway.
No, see "man dup". The file status flags are shared between the two, so a change to one means both are affected. The file descriptor flags are not. At what point do you do the GET_FL? I don't see it in the code you sent