support linux kernel apis (new archs) with old syscalls removed
[musl] / src / stdio / __fdopen.c
index a2ca62b..a6ae73a 100644 (file)
@@ -32,7 +32,8 @@ FILE *__fdopen(int fd, const char *mode)
        /* Set append mode on fd if opened for append */
        if (*mode == 'a') {
                int flags = __syscall(SYS_fcntl, fd, F_GETFL);
-               __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND);
+               if (!(flags & O_APPEND))
+                       __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND);
                f->flags |= F_APP;
        }