Číst (systémové volání) - Read (system call)
![]() | Tento článek obsahuje a seznam doporučení, související čtení nebo externí odkazy, ale její zdroje zůstávají nejasné, protože jí chybí vložené citace.Února 2019) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
V moderní POSIX v souladu operační systémy, program, který potřebuje přístup k datům z a soubor uloženo v a souborový systém používá číst systémové volání. Soubor je označen a deskriptor souboru který se obvykle získá z předchozího hovoru na otevřeno. Toto systémové volání načítá data v bajtů, jehož počet je určen volajícím, ze souboru a ukládá se poté do vyrovnávací paměti dodávané volajícím procesem.
Čtení systémového volání trvá tři argumenty:
- Deskriptor souboru souboru.
- vyrovnávací paměť, do které se mají číst data ukládat, a
- počet bytů, které se mají ze souboru načíst.
Použití POSIX
Rozhraní pro přečtené systémové volání je standardizováno specifikací POSIX. Data ze souboru jsou čtena voláním funkce čtení:
ssize_t číst(int fd, prázdnota *buf, size_t počet);
Vrácená hodnota je počet přečtených bytů (nula označuje konec souboru ) a pozice souboru je o toto číslo posunuta. Není to chyba, pokud je tento počet menší než požadovaný počet bajtů; k tomu může dojít například proto, že právě teď je aktuálně k dispozici méně bytů (možná proto, že jsme byli blízko konce souboru nebo proto, že čteme z trubka, nebo z a terminál ), nebo proto, že systémové volání bylo přerušeno a signál.
Alternativně se v takovém případě vrátí -1, když dojde k chybě errno je nastaveno vhodně a dále je ponecháno nespecifikováno, zda se změní poloha souboru (pokud existuje).
Viz také
Reference
externí odkazy
C_Programování / C_Reference / stdio.h / fread na Wikibooks