Ir ao conteúdo
  • Cadastre-se

java.util.Gustavo

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

posts postados por java.util.Gustavo

  1. 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;
    	
    }
          
       
    	

     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!