Timer in C++ using system calls
Last Updated :
05 Jul, 2021
The task is to create timer without using any graphics or animation. The timer will be made using system calls wherever necessary. Timer in this context means a stopwatch with up-counting of time.
The timer is created in Linux. Following system calls of Linux are used:
sleep() : It will make the program sleep for number of seconds provided as arguments to the function.
system() : It is used to execute a system command by passing the command as argument to this function.
Below is the implementation for creating timer using System Calls:
CPP
#include <iomanip>
#include <iostream>
#include <stdlib.h>
#include <unistd.h>
using namespace std;
int hours = 0;
int minutes = 0;
int seconds = 0;
void displayClock()
{
system ( "clear" );
cout << setfill( ' ' ) << setw(55) << " TIMER \n" ;
cout << setfill( ' ' ) << setw(55) << " --------------------------\n" ;
cout << setfill( ' ' ) << setw(29);
cout << "| " << setfill( '0' ) << setw(2) << hours << " hrs | " ;
cout << setfill( '0' ) << setw(2) << minutes << " min | " ;
cout << setfill( '0' ) << setw(2) << seconds << " sec |" << endl;
cout << setfill( ' ' ) << setw(55) << " --------------------------\n" ;
}
void timer()
{
while ( true ) {
displayClock();
sleep(1);
seconds++;
if (seconds == 60) {
minutes++;
if (minutes == 60) {
hours++;
minutes = 0;
}
seconds = 0;
}
}
}
int main()
{
timer();
return 0;
}
|
Output:
Note: This can be made to run on Windows with a bit of modifications.
Modifications required:
1. Use “cls” in place of “clear” in system() call.
2. Use ‘S’ in sleep() function in place of lower case ‘s’ in sleep() function.
3. Include windows.h header file.
Making these changes code should run perfectly fine on Windows.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...