Примерно так:
if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) { ...
Хотя я читал man fcntl , я не могу понять что он делает.
man fcntl