Belajar Pemrograman C: alarm()

Mengapa menggunakan fungsi alarm()?

Fungsi alarm() sangat berguna ketika kita ingin menambahkan timing dalam program. Fungsi ini mirip dengan fungsi Timeout yang dimiliki bahasa pemrograman Ruby.

Contoh 1

Program dibawah ini akan mencetak string “Alarm 1 detik berjalan dengan baik\n”, namun gagal. Karena ada fungsi sleep() yang menyebabkan program tertidur selama 2 detik sehingga program melewati batas waktu 1 detik yang telah ditentukan dengan fungsi alarm().

#include "stdio.h"
#include "stdlib.h"
#include "signal.h"

void error_handler(int sig)
{
	printf("Ups, sudah melewati batas 1 detik...\n");
	printf("Proram keluar\n");
	exit(EXIT_SUCCESS);
}

main()
{
	signal(SIGALRM, error_handler);
	alarm(1);
	sleep(2);
	printf("Alarm 1 detik berjalan dengan baik\n");
	return 0;
}

Output

Ups, sudah melewati batas 1 detik...
Proram keluar

Contoh 2

Sebaliknya, jika kita ganti durasi menjadi 3 detik dalam fungsi alarm(), maka program akan mencetak string yang kita inginkan.

#include "stdio.h"
#include "stdlib.h"
#include "signal.h"

void error_handler(int sig)
{
	printf("Ups, sudah melewati batas 3 detik...\n");
	printf("Proram keluar\n");
	exit(EXIT_SUCCESS);
}

main()
{
	signal(SIGALRM, error_handler);
	alarm(3);
	sleep(2);
	printf("Alarm 3 detik berjalan dengan baik\n");
	return 0;
}

Output

Alarm 3 detik berjalan dengan baik

Keep Fun Coding 😀

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s