X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Funix%2Fhandle.cpp;h=cbffa48e62a7354522a8d9efb8fcafe8f8c36c60;hp=307da64fac0a374b32341c05c9092548d69f1ce4;hb=292aed8e23ea543b089d5f2a73000de4640befe7;hpb=0f5709b1262b17505c5bab06951611968a4bd326 diff --git a/source/io/unix/handle.cpp b/source/io/unix/handle.cpp index 307da64..cbffa48 100644 --- a/source/io/unix/handle.cpp +++ b/source/io/unix/handle.cpp @@ -10,10 +10,16 @@ namespace IO { void sys_set_blocking(Handle &handle, bool b) { - int flags = fcntl(*handle, F_GETFD); + int flags = fcntl(*handle, F_GETFL); fcntl(*handle, F_SETFL, (flags&~O_NONBLOCK)|(b?0:O_NONBLOCK)); } +void sys_set_inherit(Handle &handle, bool i) +{ + int flags = fcntl(*handle, F_GETFD); + fcntl(*handle, F_SETFD, (flags&~O_CLOEXEC)|(i?O_CLOEXEC:0)); +} + unsigned sys_read(Handle &handle, char *buf, unsigned size) { int ret = read(*handle, buf, size);