
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;
}
Berry Bank: Criando um Banco Digital Gamificado para seus Filhos com Gentoo, Flask e Tailscale
Papagaiando o XFCE com temas e recursos
Instale o DOOM Retro no Gentoo facilmente via Overlay
Steam (Flatpak) rodando jogos em partição NTFS
O dock Plank + U-Launcher deixam qualquer desktop mais produtivo
Instalar Linux em notebook Sony Vaio VPCEG13EB (17)
Alguém tem que acabar com ANATEL!!! (10)
O que você está ouvindo agora? [2] (229)









