Otevření souboru
Pro otevření souboru nejčastěji použijeme standardní funkci "open" nebo "sysopen". Otevření souboru je také jinými slovy přidružení ovladače k souboru zadaného jména. V tomto okamžiku také říkáme, jak se souborem budeme chtít pracovat — číst, zapisovat či obojí.Funkce "open"
U funkce "open" je jejím prvním argumentem jméno ovladače, jehož chceme se souborem spojit. Existují dvě varianty.
1. Funkci předáme jeden argument, kterým bude jméno souboru včetně způsobu jeho otevření.
2. Funkci předáme dva argumenty - prvním bude způsob otevření souboru a druhým bude jméno souboru.
Způsob otevření souboru se definuje zvláštními symboly, jejichž přehled je uveden v následující tabulce.
Symbol | Způsob otevření |
---|---|
< | Pro čtení |
> | Pro přepis |
>> | Připojení na konec souboru |
+> | Pro zápis i čtení |
+< | Pro přepis i čtení |
+>> | Připojení na konec souboru s možností čtení |
A nyní několik příkladů otevření souboru….
// otevření pro čtení
open F, 'data.txt';
open F, ' <data.txt';
// otevření pro zápis na konec s možností čtení
open F, '+» data.txt;
// otevření pro přepis
open F, '>', 'data.txt';
// otevření souboru s kontrolou
open F, 'data.txt' or die "Soubor se nepodařilo otevřít: $!\n";
Funkce sysopen
Další možností je při otevření ovladače použít funkci "sysopen", která nabízí větší kontrolu nad otevíraným souborem. Prvním argumentem je jméno ovladače, pomocí kterého chceme k souboru přistupovat, druhým argumentem je jméno otevíraného souboru. Třetím argumentem se určí, pro jaký způsob práce bude soubor otevřen. Pro tento účel nám slouží konstanty z modulu "Fcntl", jejichž přehled je uveden v následující tabulce.
Konstanta | Význam |
---|---|
0_RDONLY | pouze pro čtení |
0_WRONLY | pouze pro zápis |
0_RDWR | pouze pro čtení a zápis |
O_CREAT | vytvoří soubor pokud neexistuje |
O_EXCL | selže, když soubor existuje |
O_APPEND | připojení na konec souboru |
0_TRUNC | vymaže obsah souboru |
O_NONBLOCK | neblokuje soubor |
A nyní několik příkladů otevření souboru….
sysopen F, 'data.txt', O_RDONLY;
// to samé jako open F, '<data.txt'
sysopen F, 'data.txt', O_WRONLY |1 O_APPEND | O_CREAT;
// to samé jako open F, '>>data.txt'
sysopen F, 'data.txt', 0_RDWR | O_EXCL | O_CREAT;
// otevře soubor pro čtení i zápis, tento soubor, nesmí existovat a bude vytvořen
A to by bylo pro dnešek všechno. V dalším díle se podíváme na textové soubory. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.
Autor: Robert Habrman