Náhrada system(„pause“) v linuxech za cyklus s podmínkou

Ve školních příkladech se často na konci metody main nachází volání

system("pause");

což způsobí zastavení běhu programu a umožní užívateli přečíst si co program vytiskl do konzole, a čeká na stisk klávesy.

Ale protože funkce system je vázaná na operační systém, v linuxech toto fungovat nebude. Stejnou funkci však vykoná tento jednoduchý cyklus:

while(getchar()!='\n')
;

A nejlépe bude funkce vidět na celém příkladu:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
    printf("%s\n","ahoj");
    pause();
    return 0;
}

pause(){
    printf("%s","\n");
    printf("%s","stisknete klavesu ENTER");
    while(getchar()!='\n')
        ;
}

Kde cyklus přesuneme do funkce pause, která vypíše hlášku a bude čekat na stisk Enteru. tím docílíme v podstatě stejné funkčnosti