Kod:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <wait.h>
int main (){
for (int i=1 ; i<6; i++){
if (fork()){
//parent
}
else {
if (i % 2 != 0){
printf ("\n");
int rnd = rand() % 10+1;
printf ("Ben %d. işlemim ,ürettiğim deger '%d'\n",i,rnd);
return 1;
}
if (i%2==0){
printf ("Ben %d. işlemim , %d işlem numaram\n",i,getpid());
return 2;
}
if (i==5){
int x = 0;
int y = 3 / x;
return 3;
}
if (i%2!=0){
printf ("\n");
int rnd1 = rand() % 9+1;
printf ("Ben %d. işlemim ,ürettiğim deger '%d'",i,rnd1);
return 4;
}
if(i%2==0){
int a = getpid();
a = a %100;
printf ("İşlem numarasının son 2 hanesi %d\n",a);
return 5;
}
}
}
for (int i=1; i<6; i++){
int durum;
int alt = wait(&durum);
if (WIFEXITED(durum)) {
int kod = WEXITSTATUS(durum);
printf ("\nAlt işlem %d, %d kodu ile sonlandı \n",alt,kod);
} else {
printf ("\n Alt işlem %d,çakıldı \n",alt);
}
printf ("\n---------------\n");
}
return 0;
}
Son düzenleme: