Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <unistd.h>
- #include <signal.h>
- #include <sys/wait.h>
- int processoDisplayLyric;
- int processoDisplayGraph;
- int processoTimer;
- int main(){
- int numeroMusicaAtual = 0;
- int continuar = 0;
- int processoPai = getpid();
- while(continuar == 0) {
- //Criar filho graph.
- processoDisplayGraph = fork();
- if(processoDisplayGraph == 0){
- int ficar = 0;
- while(ficar == 0){
- printf("Preso no gráfico!\n");
- pause();
- }
- }
- if(processoDisplayGraph != 0){
- //Criar filho lyric.
- processoDisplayLyric = fork();
- if(processoDisplayLyric == 0){
- int ficar = 0;
- while(ficar == 0){
- printf("Preso nas lyrics!\n");
- pause();
- }
- }
- }
- sleep(1);
- if(processoDisplayLyric != 0 && processoDisplayGraph != 0){
- //Criar filho timer.
- processoTimer = fork();
- if(processoTimer == 0){
- printf("Entrei no timer, e o meu pid é: %d\n",getpid());
- printf("No Timer -> PID Graph: %d, PID Lyric: %d\n",processoDisplayGraph,processoDisplayLyric);
- }
- }
- if(getpid() != processoPai){
- printf("----------- ENTREI --------\n\n\n\n");
- int child_status;
- pid_t wpidLyric = waitpid(processoDisplayLyric, &child_status, 0);
- pid_t wpidGraph = waitpid(processoDisplayGraph, &child_status, 0);
- }else{
- //É o pai
- int child_status;
- for (int i = 0; i < 2; i++) {
- pid_t wpid = waitpid(processoDisplayLyric, &child_status, 0);
- if (WIFEXITED(child_status))
- printf("Saw %d done with %d\n", wpid, WEXITSTATUS(child_status));
- else
- printf("Child %d terminated abnormally\n", wpid);
- }
- }
- printf("-------------\n");
- printf("IDGRAPH: %d, IDLYRIC: %d, IDTIMER: %d\n",processoDisplayGraph,processoDisplayLyric,processoTimer);
- printf("-------------\n");
- /// waitpid(processoDisplayGraph,);
- numeroMusicaAtual++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement