summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/_fileio.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/Modules/_fileio.c b/Modules/_fileio.c
index 364748a..660402f 100644
--- a/Modules/_fileio.c
+++ b/Modules/_fileio.c
@@ -230,6 +230,11 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds)
flags |= O_BINARY;
#endif
+#ifdef O_APPEND
+ if (append)
+ flags |= O_APPEND;
+#endif
+
if (fd >= 0) {
self->fd = fd;
}
@@ -242,18 +247,6 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds)
PyErr_SetFromErrnoWithFilename(PyExc_IOError, name);
goto error;
}
- if (append) {
- int result;
- Py_BEGIN_ALLOW_THREADS
- errno = 0;
- result = lseek(self->fd, 0, SEEK_END);
- Py_END_ALLOW_THREADS
- if (result < 0) {
- close(self->fd);
- PyErr_SetFromErrnoWithFilename(PyExc_IOError, name);
- goto error;
- }
- }
}
goto done;