www.wikidata.uk-ua.nina.az
gets funkciya sho vhodit do standartnoyi biblioteki movi Si ogoloshena v zagolovnomu fajli a href Stdio h html title Stdio h stdio h a yaka chitaye ryadok zi standartnogo vhidnogo potoku i pomishaye yiyi v bufer stvorenij funkciyeyu sho viklikaye Yaksho vidaye pomilku to teper dlya yiyi vikliku slid viklikati gets s Zmist 1 Realizaciya 2 Alternativi 3 Bezpeka vikoristannya 4 Primitki 5 PosilannyaRealizaciya RedaguvatiMozhna realizuvati takim sposobom za dopomogoyu getchar char gets char s ochishennya buferu vvedennya fflush stdin int i k getchar Povertayemo NULL yaksho nichogo ne vvedeno if k EOF return NULL Zchituyemo ta kopiyuyemo v bufer simvoli doki ne dosyagnemo kincya ryadka abo fajlu for i 0 k EOF amp amp k n i s i k k getchar Pri viyavlenni pomilki bufer rezultatu nepridatnij if k EOF amp amp feof stdin return NULL Nul terminuyemo j povertayemo bufer u razi uspihu Simvol perevedennya ryadka u buferi ne zberigayetsya s i 0 return s Programist povinen znati maksimum chisla simvoliv yaki gets maye prochitati shob upevnitisya sho vidilyayetsya bufer dostatnogo rozmiru Podibne nemozhlivo bez informaciyi pro dani Cya problema mozhe sprichinyati pomilki i vidkrivaye prostir dlya porushen komp yuternoyi bezpeki za dopomogoyu perepovnennya bufera Bagato dzherel radyat programistam nikoli ne vikoristovuvati gets u novih programah 1 2 3 Zastosuvannya gets velmi zasudzhuyetsya Funkciyu zalisheno v standartah C89 i C99 zadlya zvorotnoyi sumisnosti Bezlich instrumentiv rozrobki PZ yak napriklad GNU ld vidaye poperedzhennya v razi viyavlennya pri komponuvanni kodu z vikoristannyam gets Alternativi RedaguvatiZamist gets mozhna vikoristati inshi funkciyi ryadkovogo vvedennya sho dozvolit uniknuti pomilok pov yazanih z perepovnennyam bufera Najprostishim variantom bude a href Fgets html title Fgets fgets a Pri zamini kodu viglyaduchar buffer BUFFERSIZE gets buffer kodom viglyaduchar buffer BUFFERSIZE fgets buffer sizeof buffer stdin slid mati na uvazi sho viklik fgets buffer sizeof buffer stdin vidriznyayetsya vid gets buffer ne tilki zahistom vid perepovnennya bufera ale j tim sho fgets buffer sizeof buffer stdin zberigaye zavershalnij simvol perevedennya ryadka yaksho vvedennya ryadka zakinchuyetsya simvolom perevedennya ryadka todi yak gets buffer vidkidaye jogo Bezpeka vikoristannya RedaguvatiBezpechne vikoristannya gets vimagaye vid programista perevirki togo chi ne stane problemoyu perepovnennya bufera Standart movi Si cogo ne garantuye prote isnuye kilka desho uskladnenih sposobiv pereviriti ce z riznim stupenem perenosimosti Odnim z mozhlivih variantiv ye zahisna storinka dlya zahistu pam yati U poyednanni z obrobnikami vinyatkiv takimi yak a href SIGSEGV html title SIGSEGV SIGSEGV a i sigaction zahisna storinka mozhe dopomogti z obrobkoyu pomilok Primitki Redaguvati GNU GNU Biblioteka Si Strokovyj Vvod Arhiv originalu za 19 bereznya 2012 Procitovano 2 serpnya 2008 Funkciya gets duzhe nebezpechna oskilki vona ne zabezpechuye zhodnogo zahistu vid perepovnennya ryadka s Biblioteka GNU vklyuchaye yiyi tilki zaradi sumisnosti Vam slid zavzhdi vikoristovuvati zamist neyi fgets abo getline Chomu vsi kazhut ne vikoristovuvati gets comp lang c Chasti pitannya Arhiv originalu za 19 bereznya 2012 Procitovano 2 serpnya 2008 angl gets 3 Arhivovano 24 bereznya 2022 u Wayback Machine Nikoli ne vikoristovujte gets Oskilki nemozhlivo skazati ne znayuchi nichogo pro dani skilki simvoliv prochitaye gets i tomu gets prodovzhit pomishati simvoli v bufer i pislya jogo zapovnennya sho duzhe nebezpechno u vikoristanni Ce mozhe porushiti informacijnij zahist komp yuternoyi sistemi Posilannya Redaguvatigets pubs opengroup org Arhiv originalu za 21 sichnya 2022 Procitovano 30 bereznya 2022 Otrimano z https uk wikipedia org w index php title Gets amp oldid 37774004