Bisqwit::blog - 2002-02-03



--- Sun Feb 3 02:11:14 EET 2002 ---

Zzzzzz-aika.


--- Sun Feb 3 20:32:34 EET 2002 ---

Täytyypä kerrankin myöntää, että olen kirjoittanut koodia,
josta en saa itsekään selvää.

 if((i && o && e) || !(a = stat("/dev/null", &st1)) || (i || o || e))
 {
     if(i || (!a && !fstat(0, &st2) && (st1.st_ino == st2.st_ino && st1.st_dev == st2.st_dev))) { fclose(stdin); }
     if(o || (!a && !fstat(1, &st2) && (st1.st_ino == st2.st_ino && st1.st_dev == st2.st_dev))) { fclose(stdout); }
     if(e || (!a && !fstat(2, &st2) && (st1.st_ino == st2.st_ino && st1.st_dev == st2.st_dev))) { fclose(stderr); }
 }


--- Sun Feb 3 20:41:16 EET 2002 ---

Noin. Nyt on korjattu selkeäksi :)

 /* Jos kaikki on redirektoitu aina, ei tarkisteta stattia.
  * Jos statti onnistuu, redirektoinneilla ei ole merkitystä.
  * Muutoin jotain pitää olla redirektoitu.
  */
 if((i && o && e) || !(a = stat("/dev/null", &st1)) || (i || o || e))
 {
     /* Jos fd redirektoidaan *aina*, tai sitä ei redirektoida ikinä ja se on ohjattu nulliin, se suljetaan */
     if(i || !(a || i1 || fstat(0, &st2) || st1.st_ino != st2.st_ino || st1.st_dev != st2.st_dev)) { fclose(stdin); }
     if(o || !(a || o1 || fstat(1, &st2) || st1.st_ino != st2.st_ino || st1.st_dev != st2.st_dev)) { fclose(stdout); }
     if(e || !(a || e1 || fstat(2, &st2) || st1.st_ino != st2.st_ino || st1.st_dev != st2.st_dev)) { fclose(stderr); }
 }


--- Sun Feb 3 22:20:04 EET 2002 ---

Mittasinpa, ja havaitsin, että minulla on taas 37.5°C kuumetta.


-- Designed for Lynx/Mozilla viewing ---
All content herein is copyright © 2004 Joel Yliluoma - unauthorized republishing prohibited.
Hakukoneita varten lista kaikista sivuista.