X-Git-Url: https://git.distorted.org.uk/~mdw/mLib-python/blobdiff_plain/78911cdb6782ddccef6de3cc913b714e10d2fc14..1db32dec968f0985a597c6d810fd4cd6a9bfaad8:/fdutils.pyx?ds=sidebyside diff --git a/fdutils.pyx b/fdutils.pyx index 68e0568..55c8ca1 100644 --- a/fdutils.pyx +++ b/fdutils.pyx @@ -26,6 +26,17 @@ def fdflags(file, unsigned fbic = 0, unsigned fxor = 0, unsigned fdbic = 0, unsigned fdxor = 0): + """ + fdflags(FILE, [fbic = 0], [fxor = 0], [fdbic = 0], [fdxor = 0]) + + Set fcntl(2) file and descriptor flags. If these are FL and FD, then + update: + + * FL = (FL & ~FBIC) ^ FXOR + * FD = (FD & ~FDBIC) ^ FDXOR + + FILE may be integer file descriptor or an object with `fileno' method. + """ cdef int rc rc = _fdflags(_getfd(fd), fbix, fxor, fdbic, fdxor) if rc < 0: @@ -33,16 +44,24 @@ def fdflags(file, return rc def fdsend(sock, file, buffer): + """ + fdsend(SOCK, FILE, BUFFER) -> RC: + send FILE over Unix-domain socket SOCK, along with BUFFER + """ cdef void *p cdef Py_ssize_t len cdef int rc - PyObject_AsReadBuffer(buffer, &p, &len) + PyObject_AsReadBuffer(buffer, &p, &len) rc = fdpass_send(_getfd(sock), _getfd(file), p, len) if rc < 0: _oserror() return rc def fdrecv(sock, unsigned size): + """ + fdrecv(SOCK, SIZE) -> FD, BUFFER + receive file FD and BUFFER of length up to SIZE from Unix-domain SOCK + """ cdef void *p cdef buf cdef Py_ssize_t len