Nem tudom, miért gondolja fcntl () illik bele ebbe. Bezárásához fd használata close ().
Ez feltétlenül szükséges, hogy a
daemon szoros fd's 0, 1 és 2. Ezt követően, ahogy a jogászok mondják, "ésszerű elmék is ért egyet". Azokban a napokban, amikor mi voltunk csak 64 fd's, hogy ésszerű volt, hogy egyszerűen hurok hivatkozik close () on mindet. Ha én írni
daemonIgen, azt hiszem, hogy szeretném használni kap getconf (_SC_OPEN_MAX) ezáltal a lehetséges max FD és loop hivatkozva close () minden utolsó. Ez lehetne ezer close () hívások, amelyek nem szükségesek, de a close () nem nagyon gyorsan, ha kifogásolható egy nem nyitott fd.
Ha ők záró stdin, stdout és stderr, azt kell mondanom, hogy álláspontját ésszerű. De azt hiszem, hogy volna egy nehéz időszak, amely semmiféle nyelven
POSIX , amely támogatja őket. A
POSIX szabvány az on-line és van egy link, hogy a honlapunkon. Pontosan melyik részt nem idézik?
Meg kell nagyon könnyen megoldja a problémát mégis. Nem tudod megváltoztatni a app szerver nem hagyja extra fd nyílt?
Vagy ha ez
daemon nevezzük, mondjuk, daemonx, akkor írjon egy program, ami bezárja az összes fd's majd exec () 's daemonx. Hívja fel a program pre_daemonx. Have your app szerver hívás pre_daemonx.
A neve "daemonx" kódolt át egy unchangable app szerver? Nem probléma. Átnevezés "daemonx"-ről "real.daemonx", és hívja fel a program "daemonx".
Bármelyik utat választod hogy itt, rögzítés kellene kezelnie ezt a problémát 10 perc.