• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja system()

Object Storage Arubacloud
+1 głos
367 wizyt
pytanie zadane 9 sierpnia 2018 w C i C++ przez Agnes Użytkownik (990 p.)
Wielu nauczycieli programowania uczy początkujących uczniów używania system("pause") na końcu programu, by okienko konsoli nie zamknęło się zanim użytkownik nie wciśnie entera czy innego klawisza. Jeśli nie powinno się tej funkcji używać w takiej sytuacji to dlaczego?

2 odpowiedzi

+1 głos
odpowiedź 9 sierpnia 2018 przez mokrowski Mędrzec (156,220 p.)
1. Jest to funkcja wywoływana bo dany nauczyciel nie wie że w IDE które preferuje można osiągnąć to bez takiej dziwnej "protezy": https://stackoverflow.com/questions/1775865/preventing-console-window-from-closing-on-visual-studio-c-c-console-applicatio Jak widać <CTRL> to jakiś zakazany klawisz :-/ Lub w ustawieniach IDE.

2. Funkcja ta jest niebezpieczna w programie komercyjnym bo z łatwością można zaburzyć środowisko i uruchomione będzie "pause" atakującego lub zupełnie inny program. Mówię oczywiście o kontekście wydawania oprogramowania.

3. Argument polecenia w system(...), jest właściwy wyłącznie dla danego systemu operacyjnego. Tworzysz więc kod nieprzenośny.
komentarz 9 sierpnia 2018 przez Tomek Sochacki Ekspert (227,510 p.)

bo dany nauczyciel nie wie że w IDE które preferuje można osiągnąć to bez takiej dziwnej "protezy"

Niejeden nauczyciel pewnie nawet nie wie co to za magiczny skrót IDE...

komentarz 9 sierpnia 2018 przez Secrus Nałogowiec (32,880 p.)
Kontynuując temat, można dojść i do tego, że wielu nauczycieli informatyki, nie zna porządnie żadnego języka programowania...
komentarz 9 sierpnia 2018 przez Tomek Sochacki Ekspert (227,510 p.)
Wielu to nie... ale z te 95% pewnie tak :) (albo tylko ja miałem okazje takich poznać...)
komentarz 9 sierpnia 2018 przez Hiskiel Pasjonat (22,830 p.)
A znacie takich nauczycieli "Dla pewności?"

"Dla pewności dajcie dwa razy"

"Dla pewności napiszcie jeszcze to"
komentarz 9 sierpnia 2018 przez Tomek Sochacki Ekspert (227,510 p.)

Niestety, póki polscy nauczyciele będą tylko teoretykami bez praktycznie żadnego (nawet choćby kilkuletniego) doświadczenia komercyjnego to nic się w naszym szkolnictwie nie zmieni... Ja mam swoje zdanie na temat nauczycieli w szkołach średnich (bardzo niepochlebne), ale nie cieszy się ono przychylnością i już nie raz zostałem zakrzyczany (nawet na tym forum)...

"Dla pewności napiszcie jeszcze to"

hehe... nom, a potem powiedz tak team leaderowi w pracy, że chcesz tak dla pewności napisać ten moduł jeszcze raz :)

0 głosów
odpowiedź 9 sierpnia 2018 przez j23 Mędrzec (195,220 p.)

Funkcja jak funkcja, chodzi o to, że polecenie pause jest poleceniem windowsowym, więc takie wywołanie nie musi działać na systemach uniksopochodnych.

Podobne pytania

0 głosów
1 odpowiedź 170 wizyt
pytanie zadane 29 kwietnia 2017 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)
0 głosów
1 odpowiedź 66 wizyt
+1 głos
2 odpowiedzi 159 wizyt

92,753 zapytań

141,672 odpowiedzi

320,389 komentarzy

62,100 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...