2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
15 /*****************************************************************************
41 ******************************************************************************/
43 fdesc
*desc
= __getfdesc(fd
);
59 arg
= va_arg(ap
, int);
63 FIXME: FD_CLOEXEC must be off on the copy, once this flag
64 is supported (related to F_GETFD and F_SETFD).
67 return dup2(fd
, __getfirstfd(arg
));
71 return desc
->flags
& (O_NONBLOCK
|O_APPEND
|O_ASYNC
);
77 int oldmode
= __oflags2amode(desc
->flags
& ~(O_NONBLOCK
|O_APPEND
|O_ASYNC
));
80 arg
= va_arg(ap
, int);
83 arg
&= (O_NONBLOCK
|O_APPEND
|O_ASYNC
);
85 if (ChangeMode(CHANGE_FH
, desc
->fh
, oldmode
| __oflags2amode(arg
)) == DOSTRUE
)
87 desc
->flags
&= ~(O_NONBLOCK
|O_APPEND
|O_ASYNC
);
92 errno
= IoErr2errno(IoErr());