Facebook
From Reliable Peccary, 1 Year ago, written in C.
Embed
Download Paste or View Raw
Hits: 167
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <wiringPi.h>
  4. #include <unistd.h>
  5. #include <sys/utsname.h>
  6. #include <signal.h>
  7. #include <sys/wait.h>
  8. #include <sys/types.h>
  9.  
  10.  
  11. int i=0;
  12. void blink1(int *arr);
  13. void blink2 (int *arr);
  14. pid_t k1, k2;
  15.  
  16. int main(){
  17.    wiringPiSetup();
  18.     int status[3]={0,2,3};
  19.  
  20.     for (int m=0; m<3;m++){
  21.        pinMode(status[m],OUTPUT);
  22.     }
  23.     if(fork() ==0){
  24.         if (fork() == 0){
  25.             k2 = getpid();
  26.             printf("Kind 2: %d\n", getpid());
  27.             blink2(status);
  28.         } else {
  29.             k1 = getpid();
  30.             printf("Kind 1: %d\n", getpid());
  31.             blink1(status);
  32.         }
  33.     }else{
  34.         printf("Eltern: %d\n", getpid());
  35.  
  36.  
  37.         for (int j = 0; j<3;j++){
  38.             sleep(4);
  39.             system("ps -o pid,ppid,state,time,command");
  40.         }
  41.         wait(&k1);
  42.         kill(k2, SIGKILL);
  43.  
  44.         for (int m=0;m<3;m++){
  45.             pinMode(status[m], 0);
  46.  
  47.         }
  48.     }
  49.  
  50.     return 0;
  51. }
  52.  
  53.  
  54. void blink1(int *arr){
  55.      for(int m = 0; m<5;m++) {
  56.         digitalWrite(arr[i%3],1);
  57.         sleep(1);
  58.         digitalWrite(arr[i%3],0);
  59.         sleep(1);
  60.     }
  61.  
  62.     exit(0);
  63. }
  64.  
  65. void blink2(int *arr){
  66.  
  67.     while(1){
  68.         digitalWrite(arr[i%3],1);
  69.         sleep(1);
  70.         digitalWrite(arr[i%3],0);
  71.         sleep(1);
  72.         i++;
  73.     }
  74. }

Replies to A1,global rss

Title Name Language When
Re: A1,global Bistre Human c 1 Year ago.