Portál AbcLinuxu, 15. července 2025 23:25


Dotaz: kešování a změna souboru

3.8.2005 13:45 Lucid
kešování a změna souboru
Přečteno: 87×
Odpovědět | Admin
Asi trivialita, ale blbě se na to hledá faq nebo dokumentace.

Co se stane, pokud spustím soubor, ten se nakešuje do paměti, pak ho ve filesystému změním a spustím znova ? Je nějak zaručeno, že se spustí ten aktualizovaný ?

Dík

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.8.2005 15:18 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: kešování a změna souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co znamená spustit soubor? A co přesně znamená to změním? Při změně binárky programu je doporučený postup provést ulink (rm) a nahrát nový soubor (obě operace se provedou při cp). V tom případě je zaručeno, že se v paměti zůstane běžet nezměněná podoba procesu a při dalším spuštění se spustí aktualizovaná pododba. Pokud tě problematika zajímá blíže, hledej rozdíl mezi mmap a fopen.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
3.8.2005 17:19 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: kešování a změna souboru
je doporučený postup provést ulink (rm) a nahrát nový soubor (obě operace se provedou při cp)

Neřekl bych, IMHO cp otevře soubor pro zápis (neexistuje-li, vytvoří se) a zkopíruje pro něj data:

  ~/tmp$ echo 1234 > link1
  ~/tmp$ ln link1 link2
  ~/tmp$ echo 12345678 > new
  ~/tmp$ ls -li link1 link2 new
  66788 -rw-r--r--  2 mike users 5 2005-08-03 17:15 link1
  66788 -rw-r--r--  2 mike users 5 2005-08-03 17:15 link2
  66793 -rw-r--r--  1 mike users 9 2005-08-03 17:15 new
  ~/tmp$ cp new link2
  ~/tmp$ ls -li link1 link2 new
  66788 -rw-r--r--  2 mike users 9 2005-08-03 17:15 link1
  66788 -rw-r--r--  2 mike users 9 2005-08-03 17:15 link2
  66793 -rw-r--r--  1 mike users 9 2005-08-03 17:15 new
Kdyby to bylo tak, jak říkáte vy, musel by v link1 zůstat původní obsah (a u link2 by se změnilo číslo i-nodu). Mé interpretaci také odpovídá fakt, že při pokusu přepsat spuštěný spustitelný soubor příkazem cp dostanu chybu text file busy.
3.8.2005 17:51 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: kešování a změna souboru
Aha, špatně jsem si přečetl manuál, ulink se provede jen pokud do něj nelze zapisovat a je použit přepínač -f t.j. právě v případě pokusu přepsat spuštěný spustitelný soubor. Myslel jsem, že to dělá pokaždé.
$ echo 1234 > link1
$ ln link1 link2
$ echo 12345678 > new
$ ls -li link1 link2 new
54892238 -rw-r--r--  3 hynek instrat 5 2005-08-03 17:48 link1
54892238 -rw-r--r--  3 hynek instrat 5 2005-08-03 17:48 link2
56052908 -rw-r--r--  1 hynek instrat 9 2005-08-03 17:48 new
$ chmod -w link2
$ cp -f new link2
$ ls -li link1 link2 new
54892238 -r--r--r--  1 hynek instrat 5 2005-08-03 17:48 link1
56253062 -rw-r--r--  1 hynek instrat 9 2005-08-03 17:49 link2
56052908 -rw-r--r--  1 hynek instrat 9 2005-08-03 17:48 new
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
3.8.2005 17:54 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: kešování a změna souboru
Ještě zajímavější efekt je vidět pokud se po tom chmod dá ještě jednou výpis.
$ chmod -w link2
$ ls -li link1 link2 new
54892238 -r--r--r--  3 hynek instrat 5 2005-08-03 17:48 link1
54892238 -r--r--r--  3 hynek instrat 5 2005-08-03 17:48 link2
56052908 -rw-r--r--  1 hynek instrat 9 2005-08-03 17:48 new
;-)
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
3.8.2005 18:18 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: kešování a změna souboru
Zajímavější ovšem jen pro začátečníky. Ty, kdo vědí, že v adresáři je jen jméno a práva jsou v i-nodu, by to překvapit nemělo… :-)
4.8.2005 11:03 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: kešování a změna souboru
No jasně, ono by mělo už trknout, kterej chuligán odebral práva na zápis link1, že :-)
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
3.8.2005 15:48 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: kešování a změna souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ano, při spuštění se spustí to co je v souboru a ne něco jiného, co tam třeba někdy bylo. Takové chování by se totiž nenazývalo "kešování", ale "bordel" :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.