sleep() funktioniert nicht



  • ich includiere unistd.h , um die funktion sleep() zu verwenden, doch es funktioniert nicht. Beim versuch den code zu kompilieren, bekomme ich folgende Fehlermeldung:

    implicit declaration of function 'int sleep(...)'

    Hier nochmal ein Beispiel-Code:

    #include <unistd.h>
    
    void main()
    {
    sleep(5);
    }
    

    Wo liegt der Fehler?



  • Kenne nur -> Declared in Winbase.h; include Windows.h.
    VOID Sleep(DWORD dwMilliseconds);
    🙂



  • Kenne nur -> Declared in Winbase.h; include Windows.h.
    VOID Sleep(DWORD dwMilliseconds);
    🙂

    Es existiert auch eine Welt außerhalb MS Windows, wenn auch nur rudimentär:
    http://www.opengroup.org/onlinepubs/000095399/functions/sleep.html
    http://brickos.sourceforge.net/docs/APIs/html-kern/unistd_8h.html



  • erstmal vielen Dank für die Antworten.
    Aber ich muss sagen, dass mich davon nichts weiterbringt. Ich bin ein ziemlicher Anfänger. Ich würde also eventl. um etwas konkretere Antworten bitten. Danke



  • Also so funktionierts bei mir:

    #include <unistd.h>
    #include <iostream>
    
    int main()
    {
        std::cout << "Start" << std::endl;
        sleep(5);
        std::cout << "Ende" << std::endl;
    }
    

    mfg.



  • Danke für die Antwort. Aber dein Code ergibt bei mir den selben Fehler. ich benutze Dev C++. Eventl hat das damit was zu tun und als OS benutze ich Win XP-> jaja bin halt noob 🙂



  • Squawking schrieb:

    Danke für die Antwort. Aber dein Code ergibt bei mir den selben Fehler. ich benutze Dev C++. Eventl hat das damit was zu tun und als OS benutze ich Win XP-> jaja bin halt noob 🙂

    Ähem, ja^^. Unter Windows solltest du folgendes tun:

    #include <iostream>
    #include <windows.h>  //blub...
    
    int main(int argc, char **argv) {
        std::cout << "Start" << std::endl;
        Sleep(5000);  //Sleep großschreiben und Zeit in ms übergeben
        std::cout << "Ende" << std::endl;
    
        return 0;
    }
    

    MfG

    GPC



  • Aller Besten Danke @GPC.
    Das funktioniert soweit. Ich weiß zwar nicht, was die Argumente in der main funktion sollen aber ich denke, die haben mit sleep() nichts zu tun. Besten Dank.



  • Squawking schrieb:

    Das funktioniert soweit. Ich weiß zwar nicht, was die Argumente in der main funktion sollen aber ich denke, die haben mit sleep() nichts zu tun.

    nope, haben sie nicht. Das sind Argumente, die du dem Programm beim Start (z.B. in der Konsole) mitgeben kannst und mit denen es dann arbeiten kann. Die sind hier an sich überflüssig. Macht der Gewohnheit^^

    Ach ja, den Code, den du kompilieren wolltest, war im Übrigen für Unix-Systeme gedacht 😉 Nächstes mal gleich Plattform und Compiler angeben 🙂

    MfG

    GPC



  • als OS benutze ich Win XP

    Sorry, haase hatte also doch Recht. Win rulez. 😃

    Hier gebe ich Dir noch ein Beispiel für den Dev-C++:

    #include <iostream>
    #include <conio.h>
    #include <cmath>  // notwendig fuer sqrt(...)
    
    using namespace std; 
    int main()
    {
     cout << "Berechnung quadratischer Gleichungen vom Typ x*x + p*x + q = 0"
          << endl << endl;
    
     double p, q, x1, x2;
     cout << "Bitte p eingeben: ";
     cin  >> p;
     cout << "Bitte q eingeben: ";
     cin  >> q;
    
     x1 = -p/2 + sqrt( p*p/4.0 - q );
     x2 = -p/2 - sqrt( p*p/4.0 - q );
    
     cout << endl << "x1 = " << x1 << endl << "x2 = " << x2 << endl;
    
     getch();
    }
    

    Schau mal hier, veilleicht hilft es Dir beim Einstieg:
    http://www.henkessoft.de/C++/C++/cpp_konsole.htm
    Siehe dort Kap. 1.6.: Argumente hinter Programmname auswerten
    (wegen der merkwürdigen Argumente)



  • Erhard Henkes schrieb:

    #include <conio.h>

    shame on you! 😉


Anmelden zum Antworten