
Enviado em 27/05/2016 - 17:50h
Olá pessoal, estou fazendo um trabalho no qual eu preciso fazer um gerenciador de processos em c. Nele preciso criar processos e imprimir cada PID na tela, mas estou com dificuldade para administrar os processos. Quando eu escolho a opção de imprimir os processos não acontece nada e não consegui descobrir o que é. Segue o que consegui fazer:#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
#include <string.h>
int **pipefd;
void filho(int *pipe)
{
pid_t buf;
close(pipe[1]);
while(read(pipe[0],&buf,256) > 0)
printf("%d",buf);
}
int main(){
pid_t *processos;
int num, opc,i,b;
do{
printf("Digite 1 para criar novos processos:\n");
printf("Digite 2 para imprimir os processos existentes:\n");
printf("Digite 9 para sair:\n");
scanf("%d",&opc);
switch(opc){
case 1:
printf("Digite o número de processos a serem criados:\n");
scanf("%d",&num);
pipefd = (int**)malloc(sizeof(int*)*num);
processos = malloc(num*sizeof(int));
for(i = 0;i<num;i++){
pipefd[i] = (int*) malloc(sizeof(int)*2);
pipe(pipefd[i]);
processos[i] = fork();
if(processos[i] == 0){
filho(pipefd[i]);
}
}
break;
case 2:
for(i = 0;i<num;i++){
close(pipefd[i][0]);
b = processos[i];
write(pipefd[i][1],&b,sizeof(int));
if(processos[i] == 0)
filho(pipefd[i]);
}
break;
}
}while(opc!=9);
return 0;
}
Porque Gentoo semi-binário atualmente (desabafo)
A combinação de WMs com compositores feitos por fora
Audacious, VLC e QMMP - que saudades do XMMS
SUNO OpenSource: Crie um servidor de gerador de música com IA
Instalando SVP4 e MPV (VapourSynth) no Gentoo
Migração do KDE Plasma para Cinnamon no Gentoo (com systemd) + Tema Colloid
Como desativar a economia de energia no Gentoo (Systemd, Wi-Fi, USB e SSH)
Linux mint cinnamon travando. (2)
Vulkan Gaming no Slackware [RESOLVIDO] (14)









