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

Funkcja system()

Cloud VPS
+1 głos
510 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 (158,840 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,490 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,490 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,490 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,240 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ź 278 wizyt
pytanie zadane 29 kwietnia 2017 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)
0 głosów
1 odpowiedź 189 wizyt
+1 głos
2 odpowiedzi 270 wizyt

93,459 zapytań

142,454 odpowiedzi

322,724 komentarzy

62,837 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

Kursy INF.02 i INF.03
...