提交 758ab35a 编写于 作者: R Rich Felker

in fdopen, avoid setting O_APPEND flag if it's already set

this saves a syscall in the case where the underlying open already
took place with O_APPEND, which is common because fopen with append
modes sets O_APPEND at the time of open before passing the file
descriptor to __fdopen.
上级 3af2edee
......@@ -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;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册