One question to you Jeff: You are a kernel guy, as I know. What is the downfall of this: fd = open(argv[2], O_WRONLY|O_NONBLOCK|O_CLOEXEC); ?