Didn't you forgot about buffering? Default stdout is linebuffered, so if the string you're generating does not end with '\n' it won't be pushed to write(). Disable buffering (with setbbuf() or something similar) or terminate your string with newline or just call fflush(stdout). 4\/3!!