Есть такое понятие - управляющий терминал. С него нефоновая группа процессов может получать разные сигналы (например SIGINT -> control-C)
При вызове setsid() процесс станет лидером сеанса и останется без этого терминала - в качестве управляющего.
А дескрипторы терминала не закрываются при setsid(), если самостоятельно их не закроешь. Более того, в них можно писать и читать.