Untuk menghentikan sebuah proses, kita bisa menggunakan fungsi exit(). Fungsi ini berada dalam pustaka unistd.h. Bentuk umum fungsi ini adalah :

void exit(int status) 

dimana status merupakan nilai balikan yang kita kirimkan via fungsi ini. Perjanjian yang banyak digunakan adalah 0 untuk penghentian proses yang sukses dan bukan 0 untuk penghentian proses yang bermasalah. Daftar yang umum digunakan oleh sistem FreeBSD ada di /usr/include/sysexits.h. Namun kita bisa saja mendefiniskan status error kita sendiri. Untuk lebih jelasnya perhatikan contoh berikut, test_exit.c, yang merupakan modifikasi file test_wait.c :

$edit test_exit.c

#include <stdio.h>
#include <unistd.h>         /*fork() dan exit()*/
#include <sys/types.h>      /*pid_t*/

int main()
{
   pid_t nilai_balikan, pid;
   int status;

   nilai_balikan = fork();

   if (nilai_balikan < 0){
        perror("fork");
        exit(1);
        /* CATATAN : perror() menghasilkan sebuah pesan kesalahan pendek pada  standard error yang menjelaskan eroor terakhir yang terjadi ketika sebuah penggilan ke sistem atau fungsi pustaka. */
   }
   else if (nilai_balikan == 0)
      execlp("/bin/ls","ls",0);
   else{
      pid = wait(&status);
      printf("Proses induk dengan PID : %d, telah bersedia menunggu selesainya proses anaknya dengan PID : %d sebelum menampilkan baris ini.\n", getpid(), pid);
      exit(0);
  }
}

$ gcc -o test_exit test_exit.c
$ ./test_exit
coba                    killerror2.txt          psoutput1.txt           so.txt                  test_exit.c
cobaread                psaxgrepsendmail.txt    pssort.txt              tes_fork                test_fork
cobaread.c              psaxgrepsenmail.txt     sistem                  tes_fork.c              test_fork.c
hello                   psaxoutput.txt          sistem.c                test_execl              test_wait
hello.c                 psin.txt                sistem2                 test_execl.c            test_wait.c
killerror.txt           psoutput.txt            sistem2.c               test_exit
Proses induk dengan PID : 696, telah bersedia menunggu selesainya proses anaknya dengan PID : 697 sebelum menampilkan baris ini.
$

FreeBSD…bukan Superman tapi perkasa.

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa