Jde svym detem NEpredat otevrene filehandly?

Jan Kasprzak kas na fi.muni.cz
Čtvrtek Březen 26 09:48:18 CET 2009


Pavel Smerk wrote:
: Asi neco nechapu --- jaktoze musim STDOUT zavrit v obou vetvich driv nez
: spustim ten Task Manager? Jak by slo udelat, aby se tomu spoustenemu procesu
: nepredaval ten otevreny filehandle na STDOUT, ale v druhe vetvi programu (v
: rodici) by sel dal pouzivat?

	Pisu mozna uplne mimo protoze Windows nerozumim, ale jeste existuje
flag FD_CLOEXEC, kterym lze rict, ze tento filehandle se nema predavat
novemu programu spoustenemu pres exec() (coz je zrejme neco co system()
vola uvnitr). Hmm, vlastne - nechces ty exec misto system 1, ... ?

	Neco jako

my $flags = fcntl(STDOUT, F_GETFD, 0);
$flags &= ~FD_CLOEXEC;
fcntl(STDOUT, F_SETFD, $flags);

a pak

exec $prikaz, $arg1, $arg2, ...;

-Yenya

-- 
| Jan "Yenya" Kasprzak  <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839      Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/    Journal: http://www.fi.muni.cz/~kas/blog/ |
>>  If you find yourself arguing with Alan Cox, you’re _probably_ wrong.  <<
>>     --James Morris in "How and Why You Should Become a Kernel Hacker"  <<


Další informace o konferenci Perl