Funkce C standardních knihoven
 
Toto je seznam funkčních prototypů ve standardní knihovně C v abecedním pořadí a seznam prototypů seskupených podle funkčnosti.

Abecední seznam
Buffer Manipulation
Character Classification and Conversion
Data Conversion
Directory Manipulation
File Manipulation
Stream I/O
Low level I/O
Mathematics
Memory Allocation
Process Control
Searching and Sorting
String Manipulation
Time

Description

Sloupec Komentáře obsahuje velmi stručný popis použití funkce. Tento seznam není úplný, ale poskytuje informace o hlavních funkcích C Runtime Library. Je třeba přinejmenším uvést, jaké funkce jsou k dispozici ve standardní knihovně C. To vám umožní lepší další studium na vlastní pěst. Některé z funkcí knihovny C, které jsou zde porůznu roztroušeny nemusí být ve FreeBASIC k dispozici. Vždy zkontrolujte funkčnost, než je použijete.

Poznámka: Následující prototypy nejsou oficiální FreeBASIC prototypy (viz hlavičkové soubory), ale poskytnou vám dostatek informací, pro správné používání funkcí.

Sloupec Soubor obsahuje jméno souboru, které je třeba zahrnout pomocí direktivy #include na začátku svého programu. Pokud soubor nezahrnete, program buď nebude sestaven, nebo nebude sestaven správně a podle toho bude také fungovat (nefungovat). Všechna záhlaví C Runtime se nacházejí v adresáři crt; Například při použití záhlaví math.bi, použijte #include "crt/math.bi" nebo #include "crt\math.bi", vaše prosté #include "crt.bi" pak zahrnuje i vše ostatní.

Sloupec Prototype obsahuje tyto informace:
    • Název funkce;
    • Parametry potřebné pro funkci v závorce, spolu s datovým typem parametrů;
    • Datový typ hodnoty vrácené funkcí.

Například atoi(a as zstring ptr) as integer znamená, že funkce atoi vrací hodnotu typu integer a vyžaduje charakter zstring ptr jako argument.

Poznámka: Aby bylo volání funkcí C runtime velmi jednoduché, jakýkoli typ řetězce, jako argumentu, může být přímo předán do procedury s odkazem na parametr, je-li parametr deklarován jako "zstring PTR". Překladač provádí sám automatickou konverzi (bez varovného hlášení) mezi řetězci a "zstring PTR".

Abecední seznam


JménoPrototyp (s parametry)#Include FilePůvodní Komentář < komentář překladatele >
abs_abs_(n as integer) as integerstdlib.biVrací absolutní hodnotu (tj. kladnou hodnotu)
acos_acos_(a as double) as doublemath.biVrací inverzní cosinus - arc (úhel v radiánech)
asin_asin_(a as double) as doublemath.biVrací inverzní sinus - arc (úhel v radiánech)
atan_atan_(a as double) as doublemath.biVrací inverzní tangens - arc (úhel v radiánech)
atan2_atan2_(y as double, x as double) as doublemath.biVrací inverzní tangens - arc (protilehlá jako y, přilehlá jako x)
atoiatoi(s as zstring ptr) as integerstdlib.biPřevede číselný znak zstring na číslo typu integer.
atofatof(s as zstring ptr) as doublestdlib.biPřevede číselný znak zstring na číslo typu double.
calloccalloc(NumElts as integer, EltSiz as integer) as any ptrstdlib.biAlokuje paměť. Vrací ukazatel na vyrovnávací paměť pro pole s NumElts počtem prvků, z nichž každý má velikost EltSiz bajtů. < NumElts=NumberElements= Počet Prvků, EltSiz=ElementSize= Velikost Prvku >
ceilceil(d as double) as doublemath.bi Vrátí nejbližší celé číslo nad předanou hodnotou. < ceil= najít strop, např. z čísla 6.28 udělá 7, nevím co dělá při zadání celého čísla >
clearerrclearerr(s as FILE ptr)stdio.biVymaže chybové indikátory u streamu souboru (read or write) < s= číslo souboru >.
cos_cos_(ar as double) as doublemath.biVrací cosinus úhlu vyjádřený v radiánech.
coshcosh(x as double) as doublemath.biVrátí hyperbolický cosinus úhlu vyjádřený v radiánech.
divdiv(num as integer, denom as integer) as div_tstdlib.biVrátí podíl a zbytek po dělení jako struktury typu div_t. < num= dělenec, denom= dělitel + + + POZOR na dělení nulou! >
ecvtecvt(x as double) as zstring ptrmath.biPřevede číslo na zstring.
exit_exit_(status as integer)stdlib.biUkončí program. Vyprázdní buffery souborů, zavře všechny otevřené soubory a spustí libovolné funkce volané přes atexit().
exp_exp_(a as double) as doublemath.biVrací hodnotu e (inverzní k přirozenému logaritmu).
fabsfabs(d as double) as doublemath.biVrací absolutní hodnotu (tj. kladnou hodnotu) typu Double.
fclosefclose(s as FILE ptr) as FILE ptrstdio.biZavře soubor. V případě úspěchu vrací hodnotu 0, jinak EOF.
feoffeof(s as FILE ptr) as integerstdio.biVrací hodnotu ukazatele End-Of-File < zda byl nalezen konec souboru >. (0 pokud není EOF). Ukazatel by se měl smazat sám, ale lze jej i resetovat clearerr().
ferrorferror(s as FILE ptr) as integerstdio.biVrací error ukazatel pro stream < proud dat > (0 když není error). Ukazatel error je resetován clearerr() nebo rewind().
fflushfflush(s as FILE ptr) as integerstdio.biSmaže stream < proud dat > (použití stdin smaže stream z klávesnice). Při úspěchu vrací 0.
fgetcfgetc(s as FILE ptr) as integerstdio.biVstup jednotlivých znaků (v ASCII) z procházejícího proudu/streamu (stdin pro klávesnici).
fgetposfgetpos(s as FILE ptr, c as fpos_t ptr) as integerstdio.biUloží pozici ukazatele souboru do streamu < datového proudu > s na místo (at the location) c.
fgetsfgets(b as zstring ptr, n as integer, s as FILE ptr) as zstring ptrstdio.biZe streamu s < proudu dat s > čte až po n-1 znaky a vkládá do bufferu b.
floorfloor(d as double) as doublemath.biVrací nejbližší celé číslo pod předanou hodnotou. < Usekne desetinná místa, ale nejsem si jist co udělá, pokud zašlu celé číslo. Jestli vrátí celočíselné d-1 nebo d. >
fmodfmod(x as double, y as double) as doublemath.biVypočítá zbytek po dělení x/y.
fopenfopen(file as zstring ptr, mode as zstring ptr) as FILE ptrstdio.biOtevře soubor. Předá DOS název souboru a kód indikující způsob otevření souboru čtení, zápis, obojí. Kódy jsou r=read=čtení, w=write=zápis, +=read/write=čtení/zápis, a=appendig=připojení, b=označuje binární.<  + Čti i sublinky. >
fprintffprintf(s as FILE ptr, fmt as zstring ptr, ...) as integerstdio.biTiskne do streamu s < proudu dat s > tolik položek, jako je klíčů se znakem '%' v řetězci fmt. Tištěné hodnoty musí počtem i typem odpovídat a být odděleny čárkami.< podobné v fB je PRINT # , či návod FPRINTF (bez záruky)  >
fputcfputc(c as integer, s as FILE ptr) as integerstdio.biVýstup jednoho znaku c do streamu s < proudu dat s >
fputsfputs(b as zstring ptr, s as FILE ptr) as integerstdio.biOdešle znakový tok v b pro streamování s, vrací 0 v případě, že operace se nezdařila.
freadfread(buf as any ptr, b as size_t, c as size_t, s as FILE ptr) as integerstdio.biČte c datových položek o velikosti b bajtů ze souboru s do bufferu buf < vyrovnávací paměti buf >. Vrací číslo aktuálně čtené datové položky < vlastně totéž jako počet úspěchů až po současnost >.
freefree(p as any ptr)stdlib.biUvolní přidělení paměti pro ukazatel p < pointer > a umožní tuto paměť používat pro jiné účely.
freopenfreopen(file as zstring ptr, mode as zstring ptr, s as FILE ptr) as FILE ptrstdio.biOtevře soubor pro přesměrování streamu < proudu >. Např. freopen("myfile", "w", stdout) přesměruje standardní výstup do myfile.
frexpfrexp(x as double, p as integer ptr) as doublemath.biNormalizovaný základ a mocnina dvou. x=m×2exp. Výpočet hodnot m a e z výrazu x=m2e. p je ukazatel na m. < Koukám na ten typ integer a napadá mě kompatibilita s 64-bit. Před použitím protřepat! :-) >
fscanffscanf(s as FILE ptr, fmt as zstring ptr, ...) as integerstdio.biČte ze streamu s < datového proudu s > tolik položek, kolik je v řetězci fmt charakterových znaků %. < viz nápověda k fprintf výše >
fseekfseek(s as FILE ptr, offset as integer, origin as integer) as integerstdio.biNastaví ukazatel souboru. With origin 0, 1 or 2 for the beginning, offset bytes into and at the end of the stream. < viz Google nebo  >
fsetposfsetpos(s as FILE ptr, p as fpos_t ptr) as integerstdio.biNastaví ukazatel (pointer) pro stream s < proud dat s > na hodnotu, na kterou ukazuje p.
ftellftell(s as FILE ptr) as longstdio.biLokalizuje polohu ukazatele v souboru ve streamu s < datovém proudu s >.
fwritefwrite(buf as any ptr, b as integer, c as integer, s as FILE ptr) as integerstdio.biZapíše počet položek c o datové velikosti b bajtů z bufferu buf < zásobníku buf > do souboru s Vrací číslo aktuálně zapisované datové položky. < Vlastně vrací počet úspěšně zapsaných položek. >
getcgetc(s as FILE ptr) as integerstdio.biMakro pro input (vstup) jednoho znaku (v ASCII) ze streamu s < proudu dat s >. (stdin pro klávesnici)
getchargetchar() as integerstdio.biVstup (input) jednoho znaku ze standardního vstupu.
getsgets(b as zstring ptr) as zstring ptrstdio.biPřečte proud znaků ze standardního vstupu dokud nenarazí na \n nebo EOF.
hypothypot(x as double, y as double) as doublemath.biVypočítá přeponu z odvěsen x a y.
isalnumisalnum(c as integer) as integerctype.biVrací nenulovou hodnotu, když je znak c abecedním písmenem nebo číslicí.
isalphaisalpha(c as integer) as integerctype.biVrací nenulovou hodnotu, když je znak c abecední písmeno.
iscntrliscntrl(c as integer) as integerctype.biVrací nenulovou hodnotu, když je znak c řídící znak.
isdigitisdigit(c as integer) as integerctype.biVrací nenulovou hodnotu, když je c číslice.
isgraphisgraph(c as integer) as integerctype.biVrací nenulovou hodnotu, když je znak c abecední písmeno.
islowerislower(c as integer) as integerctype.biVrací nenulovou hodnotu, když je znak c malé písmeno.
isprintisprint(c as integer) as integerctype.biVrací nenulovou hodnotu, když je znak c vytisknutelný.
ispunctispunct(c as integer) as integerctype.biVrací nenulovou hodnotu, když je znak c interpunkční znak.
isspaceisspace(c as integer) as integerctype.biVrací nenulovou hodnotu, když je znak c mezerou.
isupperisupper(c as integer) as integerctype.biVrací nenulovou hodnotu, když je znak c velké písmeno.
isxdigitisxdigit(c as integer) as integerctype.biVrací nenulovou hodnotu, když je znak c HEX číslice, tedy 0F nebo f.
ldexpldexp(x as double, n as integer) as doublemath.biVrátí součin x * 2˄n.
ldivldiv(num as long, denom as long) as ldiv_tstdlib.biVrátí podíl a zbytek po dělení jako strukturu typu ldiv_t.
log_log_(a as double) as doublemath.biVrátí přirozený logaritmus argumentu a.
log10log10(a as double) as doublemath.biVrací logaritmus o základu 10 argumentu a.
mallocmalloc(bytes as integer) as any ptrstdlib.biPřiděluje paměť. Vrací ukazatel na buffer, zahrnující úložný prostor pro specifikovanou velikost.
modfmodf(d as double, p as double ptr) as doublemath.biVrací desetinnou část za pohyblivou desetinnou čárkou čísla d. p označuje integrální část, kde se vyskytuje desetinná čárka.
... a to jsem ještě překlad zlidštil! > < Ve skutečnosti tato funkce nejspíš vrátí číslo, odpovídající počtu míst p, počítáno zprava z čísla d a mám dojem, že je jí šumák, jestli je číslo d desetinné, protože jinak by si pointer zjistila sama. >
perrorperror(mess as zstring ptr)stdio.biTiskne na streamu < datovém proudu > stderr chybové zprávy mess. < (pokud jsem to správně pochopil) >
powpow(x as double, y as double) as doublemath.biVrací x˄y.
pow10pow10(x as double) as doublemath.biVrací 10˄x (inverzní funkce k log10()).
printfprintf(fmt as zstring ptr, ...) as integerstdio.biTiskne na standardní výstup < obvykle screen > tolik položek, kolik je uvedeno v řetězci fmt pomocí jednotlivých charakterových položek označených znakem %. < (%d, %i, %f, %s) >
putcputc(c as integer, s as FILE ptr) as integerstdio.biMakro pro výstup jednotlivého znaku c na stream s < datový proud s >.
putcharputchar(c as integer) as integerstdio.biMakro pro výstup jednotlivého znaku c na standardní výstup < obvykle screen >.
putsputs(b as zstring ptr) as integerstdio.biOdešle znak b na standardní výstup. Vrací 0 v případě neúspěchu.
randrand() as integerstdlib.biVrátí pseudonáhodné číslo. Předtím ale musí být nastaven počátek výpočtu funkcí srand.
reallocrealloc(p as any ptr, newsize as size_t) as any ptrstdlib.biPřiděluje paměť. Vrací ukazatel < pointer > do bufferu < vyrovnávací paměti > pro změnu velikosti objektu, na který odkazuje p.
rewindrewind(s as FILE ptr)stdio.biVymaže chybové indikátory streamu s < proudu dat s > (čtení nebo zápis). Je nezbytné provést před čtením z pozměněného souboru.
scanfscanf(fmt as zstring ptr, ...) as integerstdio.biČte ze standardního vstupu < (input) > takový počet položek, jaký je zadán v řetězci fmt pomocí charakterových značek %.
sin_sin_(ar as double) as doublemath.biVrací sinus (ar) úhlu, vyjádřený v radiánech.
sinhsinh(x as double) as doublemath.biVrací hyperbolický sinus (x) úhlu, vyjádřený v radiánech.
sprintfsprintf(p as zstring ptr, fmt as zstring ptr, ...) as integerstdio.biTiskne do zstring p tolik položek, kolik je jednotlivých charakterových značek s typem % v fmt. Položky jsou zároveň uvedeny v seznamu položek ve funkci a jsou odděleny čárkami.
sqrtsqrt(a as double) as doublemath.biVrátí druhou odmocninu a. Je-li hodnota záporná, vrátí chybu. < Tohle je pomalu zázrak. Jinak skoro nic v C knihovnách nemá ochranu a banální chyba běžně způsobuje v lepším případě pád programu. (viz dělení nulou v jiných funkcích) >
srandsrand(seed as uinteger)stdlib.biNastaví počáteční hodnotu pro výpočet pseudonáhodného čísla. Pro zlepšení náhodnosti se doporučuje použít aktuální systémový čas.
sscanfsscanf(b as zstring ptr, fmt as zstring ptr, ...) as integerstdio.biČte z bufferu b < vyrovnávací paměti b > tolik datových položek příslušného typu, kolik a jak je specifikováno charakterovými značkami % v řetězci fmt.
strcatstrcat(s1 as zstring ptr, s2 as zstring ptr) as zstring ptrstring.biZřetězí (připojí) řetězec s2 k řetězci s1.
strchrstrchr(s as zstring ptr, c as integer) as zstring ptrstring.biVrací ukazatel na první výskyt c v řetězci s, nebo NULL pro status NENALEZENO.
strcmpstrcmp(s1 as zstring ptr, s2 as zstring ptr) as integerstring.biPorovná řetězec s2 s s1. Vrací 0 nebo znak v ASCII hodnotě, který se v řetězcích jako první liší.
strcpystrcpy(s1 as zstring ptr, s2 as zstring ptr) as zstring ptrstring.biZkopíruje řetězec s2 do řetězce s1. < Pokud nejsem cimprlich na chybová hlášení, použiji ve FreeBASICU S1=S2. >
strcspnstrcspn(s1 as zstring ptr, s2 as zstring ptr) as integerstring.biVrací pozici znaků v s1, které se shodují s jakýmikoliv znaky v s2. < Sorry, ale zbytek na Gůglu. Tohle nikdy nepoužiji už jen kvůli prasáckému popisu v EN. >
strerrorstrerror(n as integer) as zstring ptrstring.biVrací ukazatel na chybovou zprávu systému, odpovídající zadanému číslu chyby.
strlenstrlen(s as zstring ptr) as integerstring.biVrací počet bajtů v řetězci ukončeném NULL. (nezapočítává NULL)
strncatstrncat(s1 as zstring ptr, s2 as zstring ptr, n as integer) as zstring ptrstring.biZřetězí (připojí) n bajtů ze řetězce s2 k řetězci s1. < n jako integer mi naznačuje nefunkční adresaci pro procesory 64-bit. Nutno ověřit. >
strncmpstrncmp(s1 as zstring ptr, s2 as any ptr, n as integer) as integerstring.biPorovná n bajtů z řetězce s2 na výskyt v řetězci s1. Vrací 0 nebo první nerozdílný rozdílný znak v ASCII hodnotě, tedy první zjištěnou shodu.
strncpystrncpy(s1 as zstring ptr, s2 as zstring ptr, n as integer) as zstring ptrstring.biKopíruje n bajtů z s2 do s1.
strpbrkstrpbrk(s1 as zstring ptr, s2 as zstring ptr) as zstring ptrstring.biVrací ukazatel na první znak, který je v s1 i v s2 shdný na shodné pozici.
strrchrstrrchr(s as zstring ptr, c as integer) as zstring ptrstring.biVrací ukazatel na poslední výskyt c v s, nebo NULL, pokud se nepodaří najít.
strspnstrspn(s1 as zstring ptr, s2 as zstring ptr) as integerstring.biVrací počet znaků v s1 shodných s s2, než dojde k rozdílu v řetězcích.
strstrstrstr(s1 as zstring ptr, s2 as zstring ptr) as zstring ptrstring.biHledá umístění řetězce s2 v řetězci s1 a vrátí ukazatel pozice, kde začíná shoda.
< Tohle je asi první z funkcí v tomto seznamu, která se dá využít jednodušeji z knihovny, než z Freebasicu (asi!). Nedivil bych se, kdyby byla i poslední. >
strtodstrtod(s as zstring ptr, p as zstring ptr) as doublestdlib.biPřevede formát zstring na formát double za předpokladu, že řetězec je psán ve formě čísla.
strtokstrtok(s1 as zstring ptr, s2 as zstring ptr) as zstring ptrstring.biVrátí ukazatele na po sobě jdoucí tokeny v řetězci s1. Tokeny, oddělené separátory < (čárkami?) > jsou obsaženy v řetězci s2. < Za tokeny se v tomto případě asi považují sady znaků - něco jako řetězce v řetězci, uvnitř kterého jsou odděleny čárkami. Nechci kecat, jděte Gůglit. >
systemsystem(command as zstring ptr) as integerstdlib.biRealizuje příkazy pro Operační systém provedením zevnitř programu. Příkaz/y jsou zapsány v řetězci command. Kupříkladu DIR pro Windows a DOS, adekvátně LS nebo DIR pro Linux, ale samozřejmě i celá řada dalších příkazů.
tan_tan_(ar as double) as doublemath.biVrací tangens v úhlových jednotkách radiánů.
tanhtanh(x as double) as doublemath.biVrací hyperbolickou tangentu úhlu měřenou v radiánech.
tolowertolower(c as integer) as integerctype.biPřevede znak z velkého písmene na malé písmeno (v rámci ASCII kódu).
touppertoupper(c as integer) as integerctype.biPřevede znak z malého písmene na velké (v rámci ASCII kódu).

< Nezlobte se na mě, ale tolower a toupper je do očí bijící zhovadilost!, táhnoucí se napříč celou touto tabulkou! Diakritiku, ani UTF-8 to neumí. 65+32 (97-32) si umím spočítat jinak a především lépe, vzhledem k marně utracenému strojovému času na volání a návrat z externí funkce, která: Světe div se! - sčítá! >
ungetcungetc(c as integer, s as FILE ptr) as integerstdio.biTlačí znak c zpět do streamu s, Vrací EOF při neúspěchu. Netlačte víc než jeden znak.

< Další zrůdnost! Co si asi tak mám myslet o funkčnosti programu, který takovou funkci potřebuje, aby fungoval? Ale budiž. Koneckonců jsem rád, že tahle tabulka hrůzy končí. 4 dny života utracené na studium C a překlad tohohle šmejdu je přesně o 4 dny více, než si ty knihovny zaslouží!!!!! >


Tady končím s překladem! Zbytek jsem zběžně prohlédl, a to, co tam je, se buď opakuje, nebo je to stejný šmejd, jako vše výše tohoto textu. Možná se k tomu ještě někdy vrátím, zatím jsem opět na Céčko brutálně nasraný. Zbytek odsud dolů má celkem zřejmý origo koment. Když vidím funkci SIN, asi bude počítat SIN - atd. Za zmínku stojí pár položek v závěru webstránky. Možná to někdy tedy přeložím. Letos mám Céčkových produkcí 'Pravých blondýn' dost! Promiňte!


Buffer Manipulation


#include "crt/string.bi"

Prototype (with parameters)Comments
memchr(s as any ptr, c as integer, n as size_t) as any ptrSearch for a character in a buffer.
memcmp(s1 as any ptr, s2 as any ptr, n as size_t) as integerCompare two buffers.
memcpy(dest as any ptr, src as any ptr, n as size_t) as any ptrCopy one buffer into another .
memmove(dest as any ptr, src as any ptr, n as size_t) as any ptrMove a number of bytes from one buffer lo another.
memset(s as any ptr, c as integer, n as size_t) as any ptrSet all bytes of a buffer to a given character.


Character Classification and Conversion


#include "crt/ctype.bi"

Prototype (with parameters)Comments
isalnum(c as integer) as integerTrue if c is alphanumeric.
isalpha(c as integer) as integerTrue if c is a letter.
isascii(c as integer) as integerTrue if c is ASCII .
iscntrl(c as integer) as integerTrue if c is a control character.
isdigit(c as integer) as integerTrue if c is a decimal digit.
isgraph(c as integer) as integerTrue if c is a graphical character.
islower(c as integer) as integerTrue if c is a lowercase letter.
isprint(c as integer) as integerTrue if c is a printable character.
ispunct(c as integer) as integerTrue if c is a punctuation character.
isspace(c as integer) as integerTrue if c is a space character.
isupper(c as integer) as integerTrue if c is an uppercase letter.
isxdigit(c as integer) as integerTrue if c is a hexadecimal digit.
toascii(c as integer) as integerConvert c to ASCII .
tolower(c as integer) as integerConvert c to lowercase.
toupper(c as integer) as integerConvert c to uppercase.


Data Conversion


#include "crt/stdlib.bi"

Prototype (with parameters)Comments
atof(string1 as zstring ptr) as doubleConvert zstring to floating point value.
atoi(string1 as zstring ptr) as integerConvert zstring to an integer value.
atol(string1 as zstring ptr) as integerConvert zstring to a long integer value.
itoa(value as integer, zstring as zstring ptr, radix as integer) as zstring ptrConvert an integer value to a zstring using given radix.
ltoa(value as long, zstring as zstring ptr, radix as integer) as zstring ptrConvert long integer to zstring in a given radix.
strtod(string1 as zstring ptr, endptr as zstring ptr) as doubleConvert zstring to a floating point value.
strtol(string1 as zstring ptr, endptr as zstring ptr, radix as integer) as longConvert zstring to a long integer using a given radix.
strtoul(string1 as zstring ptr, endptr as zstring ptr, radix as integer) as ulongConvert zstring to unsigned long.


Directory Manipulation


#include "crt/io.bi"

Prototype (with parameters)Comments
_chdir(path as zstring ptr) as integerChange current directory to given path.
_getcwd(path as zstring ptr, numchars as integer) as zstring ptrReturns name of current working directory.
_mkdir(path as zstring ptr) as integerCreate a directory using given path name.
_rmdir(path as zstring ptr) as integerDelete a specified directory.


File Manipulation


#include "crt/sys/stat.bi"
#include "crt/io.bi"

Prototype (with parameters)Comments
chmod(path as zstring ptr, pmode as integer) as integerChange permission settings of a file.
fstat(handle as integer, buffer as type stat ptr) as integerGet file status information.
remove(path as zstring ptr) as integerDelete a named file.
rename_(oldname as zstring ptr, newname as zstring ptr) as integerrename a file.
stat(path as zstring ptr, buffer as type stat ptr) as integerGet file status information of named file.
umask(pmode as uinteger) as uintegerSet file permission mask.


Stream I/O


#include "crt/stdio.bi"

Prototype (with parameters)Comments
clearerr(file_pointer as FILE ptr)Clear error indicator of stream,
fclose(file_pointer as FILE ptr) as integerClose a file,
feof(file_pointer as FILE ptr) as integerCheck if end of file occurred on a stream.
ferror(file_pointer as FILE ptr) as integerCheck if any error occurred during file I/0.
fflush(file_pointer as FILE ptr) as integerWrite out (flush) buffer to file.
fgetc(file_pointer as FILE ptr) as integerGet a character from a stream.
fgetpos(file_pointer as FILE ptr, fpos_t current_pos) as integerGet the current position in a stream.
fgets(string1 as zstring ptr, maxchar as integer, file_pointer as FILE ptr) as zstring ptrRead a zstring from a file.
fopen(filename as zstring ptr, access_mode as zstring ptr) as FILE ptrOpen a file for buffered I/0.
fprintf(file_pointer as FILE ptr, format_string as zstring ptr, args) as integerWrite formatted output to a file,
fputc(c as integer, file_pointer as FILE ptr) as integerWrite a character to a stream.
fputchar(c as integer) as integerWrite a character to stdout.
fputs(string1 as zstring ptr, file_pointer as FILE ptr) as integerWrite a zstring to a stream.
fread(buffer as zstring ptr, size as size_t count as size_t, file_pointer as FILE ptr) as size_tRead unformatted data from a stream into a buffer.
freopen(filename as zstring ptr, access as zstring ptr mode, file_pointer as FILE ptr) as FILE ptrReassign a file pointer to a different file.
fscanf(file_pointer as FILE ptr, format as zstring ptr zstring, args) as integerRead formatted input from a stream.
fseek(file_pointer as FILE ptr, offset as long, origin as integer) as integerSet current position in file to a new location.
fsetpos(file_pointer as FILE ptr, current_pos as fpos_t) as integerSet current position in file to a new location.
ftell(file_pointer as FILE ptr) as longGet current location in file.
fwrite(buffer as zstring ptr, size as size_t, count as size_t file_pointer as FILE ptr) as size_tWrite unformatted data from a buffer to a stream.
getc(file_pointer as FILE ptr) as integerRead a character from a stream.
getchar() as integerRead a character from stdin.
gets(buffer as zstring ptr) as zstring ptrRead a line from stdin into a buffer.
printf(format as zstring ptr _string, args) as integerWrite formatted output to stdout.
putc(c as integer, file_pointer as FILE ptr) as integerWrite a character to a stream.
putchar(c as integer) as integerWrite a character to stdout.
puts(string1 as zstring ptr) as integerWrite a zstring to stdout.
rewind(file_pointer as FILE ptr)Rewind a file.
scanf(format_string as zstring ptr, args) as integerRead formatted input from stdin.
setbuf(file_pointer as FILE ptr, buffer as zstring ptr)Set up a new buffer for the stream.
setvbuf(file_pointer as FILE ptr, buffer as zstring ptr, buf_type as integer, buf as size_t size) as integerSet up new buffer and control the level of buffering on a stream.
sprintf(string1 as zstring ptr, format_string as zstring ptr, args) as integerWrite formatted output to a zstring.
sscanf(buffer as zstring ptr, format_string as zstring ptr, args) as integerRead formatted input from a zstring.
tmpfile() as FILE ptrOpen a temporary file.
tmpnam(file_name as zstring ptr) as zstring ptrGet temporary file name.
ungetc(c as integer, file_pointer as FILE ptr) as integerPush back character into stream' s buffer


Low level I/O


#include "crt/io.bi"

So far Win32 only, connects to MSVCRT.DLL (headers missing for other platforms)

Prototype (with parameters)Comments
_close(handle as integer) as integerClose a file opened for unbuffered I/O.
_creat(filename as zstring ptr, pmode as integer) as integerCreate a new file with specified permission setting.
_eof(handle as integer) as integerCheck for end of file.
_lseek(handle as integer, offset as long, origin as integer) as longGo to a specific position in a file.
_open(filename as zstring ptr, oflag as integer, pmode as uinteger) as integerOpen a file for low-level I/O.
_read(handle as integer, buffer as zstring ptr, length as uinteger) as integerRead binary data from a file into a buffer.
_write(handle as integer, buffer as zstring ptr, count as uinteger) as integerWrite binary data from a buffer to a file.


Mathematics


#include "crt/math.bi"

Prototype (with parameters)Comments
abs_(n as integer) as integerGet absolute value of an integer.
acos_(x as double) as doubleCompute arc cosine of x.
asin_(x as double) as doubleCompute arc sine of x.
atan_(x as double) as doubleCompute arc tangent of x.
atan2_(y as double, x as double) as doubleCompute arc tangent of y/x.
ceil(x as double) as doubleGet smallest integral value that exceeds x.
cos_(x as double) as doubleCompute cosine of angle in radians.
cosh(x as double) as doubleCompute the hyperbolic cosine of x.
div(number as integer, denom as integer) as div_tDivide one integer by another.
exp_(x as double) as doubleCompute exponential of x.
fabs(x as double) as doubleCompute absolute value of x.
floor(x as double) as doubleGet largest integral value less than x.
fmod(x as double, y as double) as doubleDivide x by y with integral quotient and return remainder.
frexp(x as double, expptr as integer ptr) as doubleBreaks down x into mantissa and exponent of no.
labs(n as long) as longFind absolute value of long integer n.
ldexp(x as double, exp as integer) as doubleReconstructs x out of mantissa and exponent of two.
ldiv(number as long, denom as long) as ldiv_tDivide one long integer by another.
log_(x as double) as doubleCompute log(x).
log10(x as double) as doubleCompute log to the base 10 of x.
modf(x as double, intptr as double ptr) as doubleBreaks x into fractional and integer parts.
pow(x as double, y as double) as doubleCompute x raised to the power y.
rand() as integerGet a random integer between 0 and 32767.
random(max_num as integer) as integerGet a random integer between 0 and max_num.
randomize()Set a random seed for the random number generator.
sin_(x as double) as doubleCompute sine of angle in radians.
sinh(x as double) as doubleCompute the hyperbolic sine of x.
sqrt(x as double) as doubleCompute the square root of x.
srand(seed as uinteger)Set a new seed for the random number generator (rand).
tan_(x as double) as doubleCompute tangent of angle in radians.
tanh(x as double) as doubleCompute the hyperbolic tangent of x.


Memory Allocation


#include "crt/stdlib.bi"

Prototype (with parameters)Comments
calloc(num as size_t elems, elem_size as size_t) as any ptrAllocate an array and initialise all elements to zero .
free(mem_address as any ptr)Free a block of memory.
malloc(num as size_t bytes) as any ptrAllocate a block of memory.
realloc(mem_address as any ptr, newsize as size_t) as any ptrReallocate (adjust size) a block of memory.


Process Control


#include "crt/stdlib.bi"

Prototype (with parameters)Comments
abort()Abort a process.
execl(path as zstring ptr, arg0 as zstring ptr, arg1 as zstring ptr,..., NULL) as integerLaunch a child process (pass command line).
execlp(path as zstring ptr, arg0 as zstring ptr, arg1 as zstring ptr,..., NULL) as integerLaunch child (use PATH, pass command line).
execv(path as zstring ptr, argv as zstring ptr) as integerLaunch child (pass argument vector).
execvp(path as zstring ptr, argv as zstring ptr) as integerLaunch child (use PATH, pass argument vector).
exit_(status as integer)Terminate process after flushing all buffers.
getenv(varname as zstring ptr) as zstring ptrGet definition of environment variable,
perror(string1 as zstring ptr)Print error message corresponding to last system error.
putenv(envstring as zstring ptr) as integerInsert new definition into environment table.
raise(signum as integer) as integerGenerate a C signal (exception).
system_(string1 as zstring ptr) as integer Execute a resident operating system command.


Searching and Sorting


#include "crt/stdlib.bi"
Note: The compare callback function required by bsearch and qsort must be declared as cdecl. It must return a value <0 if its first argument should be located before the second one in the sorted array, >0 if the first argument should be located after the second one, and zero if their relative positions are indifferent (equal values).

Prototype (with parameters)Comments
bsearch(key as any ptr, base as any ptr, num as size_t, width as size_t, compare as function(elem1 as any ptr, elem2 as any ptr) as integer) as any ptrPerform binary search.
qsort(base as any ptr, num as size_t, width as size_t, compare as function(elem1 as any ptr, elem2 as any ptr) as integer)Use the quicksort algorithm to sort an array.


String Manipulation


#include "crt/string.bi"

Prototype (with parameters)Comments
stpcpy(dest as zstring ptr, src as zstring ptr) as zstring ptrCopy one zstring into another.
strcmp(string1 as zstring ptr, string2 as zstring ptr) as integerCompare string1 and string2 to determine alphabetic order.
strcpy(string1 as zstring ptr, string2 as zstring ptr) as zstring ptrCopy string2 to string1.
strerror(errnum as integer) as zstring ptrGet error message corresponding to specified error number.
strlen(string1 as zstring ptr) as integerDetermine the length of a zstring.
strncat(string1 as zstring ptr, string2 as zstring ptr, n as size_t) as zstring ptrAppend n characters from string2 to string1.
strncmp(string1 as zstring ptr, string2 as zstring ptr, n as size_t) as integerCompare first n characters of two strings.
strncpy(string1 as zstring ptr, string2 as zstring ptr, n as size_t) as zstring ptrCopy first n characters of string2 to string1.
strnset(string1 as zstring ptr, c as integer, size _t n) as zstring ptrSet first n characters of zstring to c.
strrchr(string1 as zstring ptr, c as integer) as zstring ptrFind last occurrence of character c in zstring.


Time


#include "crt/time.bi"

Prototype (with parameters)Comments
asctime(time as type tm ptr) as zstring ptrConvert time from type tm to zstring.
clock() as clock_tGet elapsed processor time in clock ticks.
ctime(time as time_t ptr) as zstring ptrConvert binary time to zstring.
difftime(time_t time2, time_t time1) as doubleCompute the difference between two times in seconds.
gmtime(time as time_t ptr) as type tm ptrGet Greenwich Mean Time (GMT) in a tm structure.
localtime(time as time_t ptr) as type tm ptrGet the local time in a tm structure.
time_(timeptr as time_t ptr) as time_tGet current time as seconds elapsed since 0 hours GMT 1/1/70.


See also
Překlad: Gmisiycs 17.06.2016