Rechercher une page de manuel
gets
Langue: pl
Version: 1993-04-04 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
NAZWA
fgetc, fgets, getc, getchar, gets, ungetc - wprowadzanie znaków i ³añcuchów znakowychSK£ADNIA
#include <stdio.h> int fgetc(FILE *stream); char *fgets(char *s, int size, FILE *stream); int getc(FILE *stream); int getchar(void); char *gets(char *s); int ungetc(int c, FILE *stream);
OPIS
fgetc() odczytuje nastêpny znak ze stream i zwraca go jako rzutowanie unsigned char na int, lub EOF w przypadku koñca pliku albo b³êdu.getc() jest równowa¿ne fgetc() z tym wyj±tkiem, ¿e mo¿e byæ zaimplementowane jako makro, które wylicza stream wiêcej ni¿ raz.
getchar() jest równowa¿ne getc(stdin).
gets() odczytuje liniê z stdin do bufora wskazywanego przez s a¿ do koñcz±cego znaku nowej linii lub EOF, który jest zastêpowany przez '\0'. Nie jest sprawdzane przepe³nienie bufora (zobacz B£ÊDY poni¿ej).
fgets() odczytuje co najwy¿ej o jeden mniej ni¿ size znaków ze stream i umieszcza je w buforze wskazywanym przez s. Odczyt koñczy siê po napotkaniu EOF lub znaku nowej linii. Je¶li odczytany zostanie znak nowej linii, jest on przechowywany w buforze. Po ostatnim znaku w buforze jest umieszczany '\0'.
ungetc() odk³ada c z powrotem do stream, rzutowane na unsigned char, o ile jest to mo¿liwe dla nastêpnych operacji odczytu. Od³o¿one znaki bêd± zwracane w odwrotnej kolejno¶ci; tylko jedno pomy¶lne od³o¿enie jest zagwarantowane.
Wywo³ania opisanych tu funkcji mog± byæ mieszane miêdzy sob± jak i z wywo³aniami innych funkcji wej¶ciowych z biblioteki stdio operuj±cych na tym samym strumieniu wej¶ciowym.
Informacje o nieblokuj±cych odpowiednikach znajduj± siê w unlocked_stdio(3).
WARTO¦Æ ZWRACANA
fgetc(), getc() i getchar() zwracaj± znak odczytany jako rzutowanie unsigned char na int lub EOF w przypadku koñca pliku lub b³êdu.gets() i fgets() zwracaj± s w przypadku pomy¶lnego zakoñczenia, a NULL w przypadku b³êdu oraz gdy wyst±pi koniec pliku, a nie zostanie odczytany ¿aden znak.
ungetc() zwraca c w przypadku pomy¶lnego zakoñczenia, a EOF w przypadku b³êdu.
ZGODNE Z
ANSI - C, POSIX.1B£ÊDY
Nigdy nie nale¿y u¿ywaæ gets(). Funkcja ta jest szczególnie niebezpieczna w u¿yciu, poniewa¿ bez znajomo¶ci danych z góry nie jest mo¿liwe okre¶lenie, ile znaków gets() przeczyta, i poniewa¿ gets() bêdzie kontynuowaæ umieszczanie znaków po przekroczeniu koñca bufora. By³o to wykorzystywane do ³amania zabezpieczeñ komputerów. Zamiast gets() nale¿y korzystaæ z fgets().Nie jest zalecane mieszanie wywo³añ funkcji wej¶ciowych z biblioteki stdio z niskopoziomowymi wywo³aniami read() dla deskryptora pliku stowarzyszonego ze strumieniem wej¶ciowym; wyniki bêd± nieokre¶lone i z du¿ym prawdopodobieñstwem nie takie, jakich oczekiwano.
ZOBACZ TAK¯E
read(2), write(2), ferror(3), fopen(3), fread(3), fseek(3), puts(3), scanf(3), unlocked_stdio(3)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre