Nyitása és zárása egy fájlt
Annak érdekében, hogy a program információkhoz való hozzáférést tartalmaz a fájl, akkor először meg kell hozzon létre egy fájlt leíró, amely továbbra is a „képviselő” a fájl a különböző műveleteket, kiemeljük, és írjuk rá információkat. De mielőtt végre különböző manipulációk a fájl tartalmát, meg kell nyitni, és befejezése után a munka velük - zárt. Általában az összes fájlkezelőt programozási nyelvek (más nyelveken más kifejezéseket is használhatnak a mechanizmusban mutat, hogy a fájl, amit úgy hívunk Perl leíró) jön létre, ugyanakkor a fájl megnyitása. A Perl erre a célra egy szabványos függvény Oren (), a lista-műveletet. A hívás három különböző formája van: az első két formája nyílt műtét nyissa elemzi fájlnév a paraméter értékét képviselő vagy egy karakterlánc, vagy egy kifejezés, amelynek értéke csak egy string. Így jön létre, és társított fájl leíró, a neve által meghatározott paraméter leíró. Ez a paraméter lehet egy érvényes azonosító Perl (alfanumerikus karakterek, a betűvel kezdődő), de lehet kifejezés. Ebben az esetben a számított értéke a kifejezés határozottan is kell lennie egy érvényes azonosítót. Kezelés nélkül nyitott be a fájlnevet megnyitja a fájlt, amelynek neve tartalmazza a skalár változó $ FOGANTYÚ, ami neki egy leíró definiált paraméter leírások. Megjegyezzük, hogy a változót, amely a nevét a fájlt megnyitni, nem lehet helyi lexikai definiált függvény én (). Listing 6.6 használatát mutatja ügyletek open () fájlokat megnyitni. (Amíg nem bevezette a mód a fájl megnyitása, úgy véljük, hogy az összes fájlok megnyitása csak olvasásra.) Listing 6.6. Különböző formájú nyílt műtét fájlok megnyitásához Felhívjuk figyelmét, hogy az összes piaci nyissa meg a fájlt, hogy ellenőrizze a visszatérési érték a nyitott funkció, ami megegyezik a „valódi” abban az esetben sikeres megnyitása a fájlok és a „hamis” egyébként. És ha volt valami hiba, ez az úgynevezett standard die () függvény, amely kiírja az üzenetet, és megszakítja a forgatókönyvet. Ez általában feltételezik, hogy a fájl megnyitása hiba olyan súlyos, hogy a program nem tud tovább futni. Ha az Ön esetében nem így van, akkor egyszerűen nézd meg (és ez mindig ajánlott!) Függvény visszatérési értéke nyitott, és megteszi a szükséges lépéseket a programban.
Megjegyzés: Ha be van állítva, hogy a fájl teljes nevét, megnyitja a fájlt a megadott néven található, és a jelenleg aktív könyvtárban. Megadhatja a teljes neve a fájlt (lásd. A harmadik szolgáltató nyílt listán 6,6), de meg kell jegyezni, hogy ez függ az operációs rendszer. Például a Windows, biztos, hogy adja meg a meghajtó betűjelét d: /perl/bin/perl.bat, ha a fájl nem található, a jelenlegi aktív hajtás. Az egyidejűleg megnyitott fájlokat a program függ az operációs rendszer. Például egy UNIX rendszer, akkor nyit egy kellően nagy számú fájlt, mivel DOS és Windows számos nyitott fájlok függ a beállított érték a változó FILES környezet (egy 255-ig), és általában változik 20-50 megnyitott fájlokat.
Megjegyzés: Néhány operációs rendszer telepítése szükséges mutató olvasás / írás egy fájlt, amikor váltás olvasás írási műveleteket. A Perl, mert ez a funkció keresik (), amelynek közlését később adjuk az ugyanabban a bekezdésben. Amikor a fájl megnyitásakor az olvasási / írási keresztül Oren () függvény formájában egy és két paraméter megfelel a három lehetséges mód szimbólum sorozatot kell hozzáadni, mint egy előtag a fájlneveket megengedett köztük és fájlok neve tetszőleges rések számát, például " +> Adatok.dat”.
Fájl megnyitásakor és megteremti neki leíró open () függvény egy jó és kényelmes módja annak, hogy állítsa be az üzemmódot, hogy a fájlt, és ha szükséges, hozzon létre egy új fájlt. Azonban a lehetőségek ez a funkció nem teszi lehetővé, hogy engedélyeinek beállítása újonnan létrehozott fájlok, ami fontos jellemzője a UNIX rendszer (lásd az alábbi megjegyzést.), Valamint oldja meg a problémát, hogy létrehozni a fájlt, ha nem létezik.
Megjegyzés: A UNIX, az egyes fájlok meghatározott hozzáférési jogokat (a felhasználó, aki létrehozta) a fájl tulajdonosa, felhasználói csoport, amely magában foglalja a tulajdonos a fájlt, és az összes többi felhasználó számára. Ezek a jogok minden egyes ilyen csoportok közé tartoznak a jogot, hogy olvasni egy fájlt, írjon az iratbetekintés és a jogot, hogy végrehajtja a fájlt, benyújtott egy három bites bináris szám, amely könnyen értelmezhető, mint egy szám: a 4-es érték megadja a jogot, hogy olvassa el, 2 - levelet és 1 - elvégzésére. A fennmaradó oktális számok 7 befogadó kombinációja hozzáférési jogokat. Például, az érték 6 meghatározza az olvasási és írási jogok (4 + 2 = 6). Így minden egyes ilyen felhasználói csoportok (a fájl tulajdonosa, a felhasználók számára, és az összes többi csoportban) alkalmazásával oktális szám 0-7 lehet beállítani az összes lehetséges kombináció hozzáférési jogokat, amelyek általában képviselteti magát, mint egy három számjegyű oktális szám. Például az érték 0666 (nulla nem határozza meg semmit, de csak arra szolgál, mint egy mutató, ami egy szám) beszámol arról, hogy a fájl határozza meg a jogot, hogy írni és olvasni, de nem végez, mindhárom csoportban a potenciális felhasználók számára.
open () függvény fájlokat hoz létre, amelynek az értéke a hozzáférési jogok, egyenlő 0666. A „vékony” megnyitni a fájlokat fájl létrehozása felbontású, távollétében feltüntetésével hozzáférési jogokat az újonnan létrehozott fájlt, és így tovább. n. ehelyett nyitott () függvény, amely van egy interfész a különböző funkciók a standard könyvtár stdio C nyelvet, akkor a standard Perl sysopen (), közvetlenül vonzó a nyitott (operációs rendszer), és lehetővé teszi a programozó határozza meg az egyes komponensek a működési módot a file: olvasás, írás, cos Karbantartás, hozzátéve, az elszámolási tartalmak stb Ez a funkció hívás a következő: ahol a fájlnév paraméter egy fájlnév paraméter megadja a fájl megnyitása állapotban van, és egy szám, ami az eredménye a bitenkénti OR (|) a folyamatos üzemmódban megadott .. a fcntl modult. A kompozíció a konstansok álló függ az operációs rendszer. Táblázat. 6.1 listák mód állandók, megtalálható szinte minden operációs rendszeren. 6.1. A leggyakrabban használt állandók fájl elérési mód
Törlésének fájl tartalma
Ahhoz, hogy hozzáférjen táblázatban felsorolt. 6.1 nevű konstans mód, a program kell csatlakoztatni a szabványos modul fcntl operátor használatát fcntl;, ami általában elején írt a program. Választható ENABLE határozza hozzáférési jogokat a létrehozott fájlt a UNIX rendszer, és adott oktális számként. Megjegyezzük, hogy a meghatározás az aktuális jogosultságokat egy fájlt is figyelembe veszi az aktuális érték a maszk hozzáférést a folyamat, amelynek során a szkript fut, amelyet a függvény umask (). Ha a felbontás nincs megadva, akkor a Perl használja az engedélyeket 0666.
TIPP Ha problémája van a telepítés a hozzáférési jogok, tartsák be a következő szabályokat: a szokásos fájlok feltöltése, 0666, valamint a könyvtárak és a futtatható fájlokat - 0777.
A megnyitása fájlok nyitott () hívásokat azok ekvivalens sysopen () funkció megtalálható listában 6.7. Listing 6.7. A fájl megnyitásakor nyitó funkció a nyitott fájl () és sysopen () visszatérő 0 egy fájl megnyitásakor egy előre meghatározott módban történt Feltételezés, és a meghatározatlan érték egyébként undef. Ismét, mindig ellenőrizze, hogy a művelet sikeres volt, nyisson meg egy fájlt, a program leállítása die () függvénnyel. A megjelenő üzenet die () függvénnyel, akkor a speciális változó $. amely tárolja a rendszer üzenetet vagy hibakódot. Ez az információ segít felismerni és kijavítani a hibákat a programban. Például, ha az üzemeltető változó $ file nevét tartalmazza egy nem létező fájl, ha végrehajtjuk, a felhasználó láthatja a következő üzenet: A leírás teljessé munka nyitott () függvény kell mondani, hogy ha a fájl neve a húr „-”, akkor nyissa meg a fájlt megfelel szabványos beviteli eszköz leíró STDIN. Ha az érték a string „> -” megfelel a kimenet a standard kimenetre leíró STDOUT.