elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda, problema para ingresar datos en tuberias.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda, problema para ingresar datos en tuberias.  (Leído 790 veces)
jmrmcf

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda, problema para ingresar datos en tuberias.
« en: 22 Marzo 2015, 00:30 am »

Estoy haciendo un programa al que le ingrese un numero, hay un proceso hijo que envia el numero a traves de una tuberia y obtiene e imprime el factorial del numero (cuando el numero es menor que cero imprime los numeros ingresados en orden ascendente y se sale del programa). El proceso padre recibe a traves de la tuberia y descompone el numero en multiplicaciones de numeros primos. Pero tengo un problema ENORME: no puedo ingresar el numero, el programa compila (ubuntu 14.04) y al ejecutarlo solo imprime una linea que tengo previa al scanf que simplemente indica que se ingrese el numero. Agradezco su ayuda, adjunto el codigo.
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5.  
  6. int a,ing[50],b,tub[2];
  7. void pedir (void)
  8. {
  9.        int num,i,fact,j,temp;
  10.        num=10;
  11. close(tub[0]);
  12. do
  13. {
  14.  
  15. printf("ingrese el numero \n");
  16. scanf("%i",&num);
  17. write(tub[1], &num, sizeof(int));
  18. ing[a]=num;
  19.        a++;
  20.        for(i=num;i>0;i--)
  21.        {    
  22.         fact=fact*i;
  23.        }
  24.        printf("factorial: %i \n",fact);
  25. fact=1;
  26. if(num<=0)
  27. {
  28. for(i=0;i<=a-1;i++)
  29. {
  30. for(j=i;j<=a-1;j++)
  31. {
  32. if(ing[j]<=ing[i])
  33. {
  34. int temp=ing[j];
  35. ing[j]=ing[i];
  36. ing[i]=temp;
  37. }
  38. }
  39.       }
  40. printf("ordenada: \n");
  41. for(i=0;i<a;i++)
  42.       {    
  43.         printf("%i \t",ing[i]);
  44.         }
  45. printf("\n");
  46. }
  47. }while(num>0);
  48.  
  49.  
  50.  
  51. }
  52. void ppadre (void)
  53. {
  54. sleep(2);
  55. int numl;
  56. numl=1;
  57. printf("ola que ase saliendose solo o que ase");
  58. do{
  59. int i,conta,o;
  60.       int primos[50];
  61.         int pos=0;
  62. close(tub[1]);
  63. for(i=1;i<=numl;i++)
  64.         {
  65.                conta=0;
  66.                for(o=1;o<=i;o++)
  67.                {
  68.                        if(i%o==0)
  69.                                conta++;
  70.                }
  71.                if(conta==2)
  72.                {                  
  73.                        primos[pos]=i;
  74.                        pos++;      
  75.                }  
  76.         }
  77.         o=1;
  78.         for(i=0;i<pos;i++)
  79.         {
  80.                if(numl%primos[i]==0)
  81.                {
  82.                        o=o*primos[i];
  83. printf("va en %i\n",o);
  84.              }
  85.        if(o==numl)
  86.        {
  87.         printf("terminado: %i\n",o);
  88.                i=pos;
  89.        }
  90. if(i==(pos-1) && o!=numl)
  91. {
  92. i=-1;
  93. }
  94.        }
  95. }while(numl>0);
  96. }
  97. void main (void)
  98. {
  99.  
  100. a=0;
  101. pid_t pid;
  102. pid = fork ();
  103. pipe(tub);
  104. switch(pid)
  105. {
  106. case -1: // error del fork<)
  107. printf("error al crear el proceso\n");
  108. break;
  109. case 0: // proceso hijo
  110. //printf("hijo\n");
  111. pedir();
  112. break;
  113. default: // padre
  114. //printf("yo soy tu padre\n");
  115. ppadre;
  116. break;
  117.  
  118. }
  119. }


« Última modificación: 22 Marzo 2015, 02:45 am por jmrmcf » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema para Ingresar datos a la BD Mysql « 1 2 »
PHP
ELIER 10 3,821 Último mensaje 16 Febrero 2008, 08:25 am
por ELIER
problema para ingresar al sistema
Windows
SLASHgenius 3 1,988 Último mensaje 9 Noviembre 2010, 05:07 am
por dantemc
Problema para ingresar Windows 7
Windows
wrongturn 3 2,346 Último mensaje 3 Octubre 2011, 15:41 pm
por Randomize
Problema Al ingresar datos a Tablas (MYQL)
PHP
ZedGe 3 1,092 Último mensaje 16 Julio 2012, 22:18 pm
por s00rk
Problema para ingresar a mi sesión en Linux Mint 15
GNU/Linux
mc5punk 5 4,197 Último mensaje 10 Noviembre 2013, 12:31 pm
por mc5punk
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines