Facebook
From Bistre Human, 1 Year ago, written in C.
This paste is a reply to A1,global from Reliable Peccary - go back
Embed
Viewing differences between A1,global and Re: A1,global
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 


int i=0;
void blink1(int *arr);
void blink2 (int *arr);
pid_t k1, k2;

int main(){
   wiringPiSetup();
    int status[3]={0,2,3};

    for (int m=0; m<3;m++){
       pinMode(status[m],OUTPUT);
    }
    if(fork() ==0){
        if (fork() == 0){
            k2 = getpid();
            printf("Kind 2: %d\n", getpid());
            blink2(status);
        } else {
            k1 = getpid();
            printf("Kind 1: %d\n", getpid());
            blink1(status);
        }
    }else{
        printf("Eltern: %d\n", getpid());


        for (int j = 0; j<3;j++){
            sleep(4);
            system("ps -o pid,ppid,state,time,command");
        }
        wait(&k1);
        kill(k2, SIGKILL);

        for (int m=0;m<3;m++){
            pinMode(status[m], 0);
 
        }
    }

    return 0;
}


void blink1(int *arr){
     for(int m = 0; m<5;m++) {
        digitalWrite(arr[i%3],1);
       system("gpio write 0 1");
        sleep(1);
        digitalWrite(arr[i%3],0);
        sleep(1);
    }

    exit(0);
}

void blink2(int *arr){

    while(1){
        digitalWrite(arr[i%3],1);
        sleep(1);
        digitalWrite(arr[i%3],0);
        sleep(1);
        i++;
    }
}