problem s: rm -rf

Jan Kara jack na ucw.cz
Pátek Listopad 30 12:10:47 CET 2001


  Ahoj,

> pri spusteni prikazu (volano v c-ckovem kodu f-ci system())
> mi pokazde volani:
>     rm -rf abcdef
> 
> vypise hlasku:
>     rm: cannot remove directory `abcdef': Directory not empty
> 
> zrejme je to tim, ze v danem adresari nejsou jeste vsechny soubory uzavreny,
> nicmene tento adresar po tomto volani obsahuje nejaky soubor, napr:
>     .nfs0013145c0000003d
> 
> pokud volam rm -rf podruhe, vse probehne tak jak ma.
> Nevim v cem je chyba, vsechny soubory (doufam) regulerne uzaviram. Je
> mozne ze f-ce fclose nezavre soubor okamzite, ale az za nejakou dobu?
> Da se to nejak obejit, aby rm -rf smazala i jeste otevrene soubory? Da se v
> c-ckovem
> programu volat nejakou f-ci (mimo system("rm -rf...")), aby ta zpusobila
> vymazani
> obsahu spec. adresare i se vsemi (jeste otevrenymi) soubory?
  Obecne na unixovych systemech neni problem smazat otevrene soubory.
Problem je pouze v tom, ze to cele bezi na NFS, coz je dost podstatne. '.nfs...'
soubor si vytvori NFS, pokud se mu nekdo pokusi smazat dosud otevreny soubor (tedy
presneji NFS v tomto pripade soubor nesmaze, ale pouze ho prejmenuje na toto divne
jmeno). Je otazka, jaky soubor tedy je v mazanem stromu otevreny - treba
pokud by v mazanem stromu byl shell, rm nebo nejaky jiny bezici program, tak je
to jasne... Muzete v programu zkusit zjistit, co soubor '.nfs...' obsahuje.

								Honza


Další informace o konferenci Linux