posix implementation