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

Funkcja sleep - Linux

Object Storage Arubacloud
0 głosów
2,853 wizyt
pytanie zadane 7 listopada 2016 w C i C++ przez Undisputed Gaduła (3,040 p.)

Witam.

Mam problem z funkcją sleep na linuxie otóż mam kod programu:

#include <stdio.h>
#include <unistd.h>

int main(){
for(;;)
{
printf("WItaj");
sleep(1);
}
return 0;
}

Kompiluję program poleceniem gcc -Wall -pedantic nazwa.c

./a.out

Jednak program nic nie wypisuje...

 

2 odpowiedzi

+4 głosów
odpowiedź 7 listopada 2016 przez jradlica Obywatel (1,540 p.)
wybrane 7 listopada 2016 przez Undisputed
 
Najlepsza

Sleep jest funkcją windowsową, jej odpowiednikiem w unixie jest usleep, ale z kolei gdy użyjesz usleep to nie uruchomisz programu na windowsie.

W C ++ 11 ta opcja jest w standardowej bibliotece, spróbuj:

#include <thread>
#include <chrono>

int main() {
    using namespace std::literals;
    std::this_thread::sleep_for(100s);
}

Dzięki temu program powinien zachować się tak samo na systemie unixowym jak i win.

1
komentarz 7 listopada 2016 przez jradlica Obywatel (1,540 p.)
int main(){
    for(;;){
        usleep(1000000);
        printf("Witaj!");
        fflush(stdout);
    }
    return 0;
}
komentarz 7 listopada 2016 przez manjaro Nałogowiec (37,390 p.)
Faktycznie pomaga fflush(stdout);
1
komentarz 7 listopada 2016 przez jradlica Obywatel (1,540 p.)
Gdy printf napotka '\n' to wie że to już koniec stringa którego miał wydrukować, bez tego wyjście cały czas czeka na resztę stringa o ile dobrze to rozumiem, zamiast pisania '\n' można to zrobić ręcznie fflush(stdout); niestety nie wypowiem się dokładniej na ten temat bo nie zajmuję się C, a nie chcę pisać głupot.
komentarz 7 listopada 2016 przez Undisputed Gaduła (3,040 p.)
Zaraz sprawdzę, dokończę tylko skrypt w bashu
komentarz 7 listopada 2016 przez Undisputed Gaduła (3,040 p.)
Dodałem \n i działa w sumie sam mogłem na to wpaść :D

Dzięki wielkie leci plus ;)
–1 głos
odpowiedź 7 listopada 2016 przez Avernis Nałogowiec (27,400 p.)
komentarz 7 listopada 2016 przez Undisputed Gaduła (3,040 p.)
Chcę aby program się wykonywał cały czas, ja sam go "odłączę" od pracy. a chcę funkcje sleep, ponieważ chcę zobaczyć czy program będzie w czołówce programów które wykorzystują cykle obliczeniowe komputera.
komentarz 7 listopada 2016 przez Avernis Nałogowiec (27,400 p.)

Żeby wykonywał się cały czas użyj pobierania czasu unixowego:

 

#include <ctime>
#include <iostream>

int main()
{
    for(;;)
    {
		std::time_t result = std::time(nullptr);
		std::cout << result << std::endl;
	}
}

 

komentarz 7 listopada 2016 przez Undisputed Gaduła (3,040 p.)
Jc to tylko w C :D a nie w C++
komentarz 7 listopada 2016 przez Avernis Nałogowiec (27,400 p.)
Jakie znowu jc?
komentarz 7 listopada 2016 przez Undisputed Gaduła (3,040 p.)
jak coś :D
komentarz 7 listopada 2016 przez Avernis Nałogowiec (27,400 p.)
To użyj time.h, zamiast ctime

Podobne pytania

0 głosów
3 odpowiedzi 993 wizyt
pytanie zadane 3 kwietnia 2018 w C i C++ przez MsMaciek123 Pasjonat (24,760 p.)
0 głosów
2 odpowiedzi 1,861 wizyt
pytanie zadane 18 grudnia 2016 w C i C++ przez Michał Biernacki Użytkownik (670 p.)
0 głosów
1 odpowiedź 895 wizyt
pytanie zadane 24 września 2016 w C i C++ przez Fresky Początkujący (300 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...