Portál AbcLinuxu, 14. května 2025 00:38

Dotaz: Vytvorenie hard-linku z cisla inodu

lolofon avatar 1.5.2007 00:05 lolofon | skóre: 3
Vytvorenie hard-linku z cisla inodu
Přečteno: 186×
Odpovědět | Admin
Problem implementacie v jazyku C:
Uzivatel ma subor(moze ich mat radovo stovky), ktory si moze takmer lubovolne premenovat (podmienkoa, ze musi mat unikatny nazov v jednom users softveri na spracovanie takychto suborov a musi mat prvych x znakov z povodneho mena). Dalej je nutne obsah takehoto suboru "poskytnut" na citanie inemu uzivatelovi pomocou hardlinky v lubovolnom case (t.j. hardlinka sa moze vytvorit aj po y cas. jednotkach od vytvorenia suboru).

Mam databazu ako sa povodne subory menovali(pripadne aj cislo inodu, umiestnenie, atd.), avsak ked si uzivatel subor premenuje a ja potrebujem vytvorit novu hard-linku tak mi meno suboru nepomoze, a musim prejst mnozstvo uzivatelovych suborov aby som idenfikoval ten povodny (trosku tomu pomoze prvych y znakov v mene suboru) a az potom vytvorit hardlinku.

Zaujima ma, ci existuje take volanie obdobne link(oldpath, newpath), ktoremu by stacilo cislo inodu na vytvorenie hardlinky. Prepokladam, ze predsa aj link() robi na tej najnizsej urovni s cislami inodov. napr:
int inode_link(long inode, char *newpath)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

michich avatar 1.5.2007 00:44 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Vytvorenie hard-linku z cisla inodu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Prepokladam, ze predsa aj link() robi na tej najnizsej urovni s cislami inodov. napr:
int inode_link(long inode, char *newpath)

Tak to předpokládáš špatně.

struct inode_operations má metodu:
int (*link) (struct dentry *old,struct inode *dir,struct dentry *new);

lolofon avatar 1.5.2007 02:09 lolofon | skóre: 3
Rozbalit Rozbalit vše Re: Vytvorenie hard-linku z cisla inodu
Dakujem, :( mate pravdu. Budem na to musiet ist inak - najskor si podla cisla inodu vyhladam nazov suboru a nasledne ho budem linkovat
Alebo ma niekto efektivnejsi napad ako to poriesit?
michich avatar 1.5.2007 10:28 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Vytvorenie hard-linku z cisla inodu
Jak jsi myslel toto?:
Mam databazu ako sa povodne subory menovali(pripadne aj cislo inodu, umiestnenie, atd.)
Co kdybys při tom vkládání do databáze zároveň vytvořil na ten soubor jeden hardlink do nějakého administrátorského adresáře? Pak bys vžycky měl k dispozici platné a známé jméno.
lolofon avatar 1.5.2007 22:56 lolofon | skóre: 3
Rozbalit Rozbalit vše Re: Vytvorenie hard-linku z cisla inodu
Ano je to mozne riesenie, avsak pre moje potreby nevyhovujuce. Nie vsetky uzivatelske subory sa budu linkovat, odhadom asi len dakych 20%. (Uzivatel ma priemerne 1000 takychto suborov). Navyse toto linkovanie sa bude vykonavat iba v urcitom casovom okne od vytvorenia suborov. Suma sumarum: mojim odhadom by vytvaranie hardlinkov do administracneho adresara iba zvysovalo reziu celeho spracovania.

Dakujem za vase napady a pripomienky :)

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.