Re[8]: Как программу из демона сделать просто консольной?
От: Kemm  
Дата: 22.11.05 22:27
Оценка:
Здравствуйте, Alex Alexandrov, Вы писали:

D>>>>>то искать в сорцах fork()/fork() (два раза должен fork делаться)

K>>>>Кому это он должен?
AA>>>From Unix Programming FAQ:
K>>[skip]
K>>И на каких юниксах нынче необходимо два форка делать?
AA>Видимо, на всех, где лидер сессии может случайно заполучить controlling terminal, ненароком сделав что-то вроде open("/dev/tty").

А что, с двумя форками это не грозит? Или я просто соображаю плохо на ночь глядя?

AA>Можно еще O_NOCTTY в open использовать, но

AA>
AA>27320 The O_NOCTTY flag was added to allow applications to avoid unintentionally acquiring a
AA>27321 controlling terminal as a side effect of opening a terminal file. This volume of
AA>27322 IEEE Std 1003.1-2001 does not specify how a controlling terminal is acquired, but it allows an
AA>27323 implementation to provide this on open( ) if the O_NOCTTY flag is not set and other conditions
AA>27324 specified in the Base Definitions volume of IEEE Std 1003.1-2001, Chapter 11, General Terminal
AA>27325 Interface are met. The O_NOCTTY flag is an effective no-op if the file being opened is not a
AA>27326 terminal device.
AA>


Вот тут тоже "но" непонятно. O_NOCTTY, в соотвествии с выделеным италиком, однозначно не даст управляющий терминал заполучить. А вот отсутствие может, в принципе.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.