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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Pasar más de un int con una pipe en: 14 Diciembre 2012, 16:06 pm
Hola, ¿es posible pasar más de un int por cada pipe o solo se puede pasar un dato por cada pipe?

Yo tengo 2 valores enteros que quiero enviárselos del proceso padre al hijo mediante una pipe.

Cuando envío los valores los meto en el vector enviar[2] y cuando los recibo los guardo en recibir[2].
Pero al recibirlo y mostrarlo me muestra unos caracteres raros.



Código
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <sys/types.h>
  4. #include <signal.h>
  5. #include <stdlib.h>
  6.  
  7.  
  8. int pidh;
  9. int i,j;
  10. int B[2][2];
  11. int pipe1[2];
  12. int enviar[2];
  13. int recibir[2];
  14. int salirhijo=0;
  15. int salirpadre=0;
  16.  
  17. void leer(){
  18. for(i=0;i<2;i++){
  19. read(pipe1[0],&recibir[i],sizeof(int));
  20. }
  21. //recibo los datos en el vector de 2 posiciones recibir[2].
  22. printf("Los datos recibidos por la pipe son: %d y %d", recibir[0], recibir[1]);
  23. }
  24.  
  25.  
  26. int main(){
  27.  
  28. pipe(pipe1);
  29.  
  30. pidh=fork();
  31.  
  32. if(pidh == 0){  //hijo
  33.  
  34.        signal(SIGUSR1,leer);
  35. while(salirhijo == 0){
  36.        printf("Hijo esperando...\n");
  37.        sleep(1);
  38.        }
  39.  
  40. }else{          //padre
  41.  
  42. sleep(1);
  43.  
  44. for (i=0;i<3;i++){
  45. for (j=0;j<3;j++){
  46. B[i][j]= rand() % 10;
  47.  
  48. printf("%d ",B[i][j]);
  49. sleep(1);
  50. }
  51. printf("\n");
  52.  
  53. }
  54.  
  55. printf("Elemento b11 -> %d\n",B[0][0]);
  56. printf("Elemento b32 -> %d\n",B[2][1]);
  57.  
  58. //le voy a enviar 2 elementos al hijo por la pipe, para ello antes los meto en el vector enviar que es de 2 posiciones.
  59.  
  60. enviar[0] = B[0][0];
  61. enviar[1] = B[2][1];
  62.  
  63.        for(i=0;i<2;i++){
  64.        write(pipe1[1],&enviar[i],sizeof(int));
  65.        kill(pidh,SIGUSR1);
  66.        sleep(1);
  67.  
  68.        }
  69. }
  70. }
  71.  
  72.  
  73.  

Saludos y gracias!!
2  Sistemas Operativos / GNU/Linux / No funciona chmod +x para dar permisos en: 17 Noviembre 2012, 16:44 pm
Hola buenas, estoy tratando de ejecutar varios archivos .sh que me descargo pero en todos me pone lo mismo:
Algo asi como que no tengo permisos para ejecutarlo.
Entonces me voy a la terminal, hago chmod +x nombrearchivo pero no ocurre nada, sigue teniendo solo los permisos de r y w.

Alguien sabe por que no funciona el chmod? tambien he probado con chmod 777 nombredelarchivo pero nada, incluso estando como root (uso debian).

Estoy tratando de instalar el BOINC (una aplicacion para la ayuda a la investigacion extraterrestre, entre otras)
pero no me funciona porque no tengo permisos. (Es un .sh)

Alguien sabe como arreglar esto de que el chmod no funcione??

Saludos!!
3  Sistemas Operativos / GNU/Linux / Error al instalar un tar.gz en: 8 Noviembre 2012, 14:32 pm
Hola buenas, estoy intentando instalar varios tar.gz  pero al hacer ./configure (estando como root)
me sale esto:

Citar
-su: ./configure: Permission denied

Tambien le he dado permisos de ejecucion con chmod pero nada.

Descomprimo el contenido con tar xvfz, accedo a la carpeta, despues accedo a la carpeta src y hago ./configure pero me salta el fallo.

Si hago
Citar
bash configure

me dice lo siguiente:

Citar
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... configure: error: in `/media/DATOS/Descargas_Linux/reaver-1.4/src':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.


Alguna idea de que puede ser?

He de decir que uso Linux mint 13 y que el gcc esta instalado.

Saludos!!
4  Programación / Scripting / [BASH] usar return en bash en: 6 Noviembre 2012, 23:49 pm
Hola buenas, esta función cambia el pass de un pequeño programa que estoy haciendo:



Código
  1. function cambiarpass(){
  2. c=0
  3. while (test $c -eq 0)
  4. do
  5. echo "Introduce una contraseña: "
  6. read pass
  7. echo "Confirma la contraseña: "
  8. read pass2
  9.  
  10. if [ $pass = $pass2 ]
  11. then
  12. c=1 #para salir del bucle
  13. fi
  14.  
  15. if [ $pass != $pass2 ]
  16. then
  17. echo "Las contraseñas no coindicen"
  18. echo ""
  19. fi
  20.  
  21. done #fin while
  22. return $pass
  23. }

Yo ahora si quiero usar esa nueva contraseña (variable pass) en el programa principal, como debería llamar a la funcion?

he probado: (en el main)

var=cambiarpass
o
var=$cambiarpass

pero ninguna funciona ya que en var deberia tener el valor de $pass.
como sería?

Saludos y gracias!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines