El S�bado 18 Agosto 2001 18:33, Jorge Lenin Fernandez Perez escribi�:
> Yo quisiera recibir ayuda de parte de cualquier miembro del grupo para
> realizr un proyecto de programaci�n en C en el SO Linux, el cual consiste
> en lo siguiente:
COn gusto !
Debes primero comprender que programar para GNU Linux en C, es casi lo mismo
que en DOS usando borland, lo que cambia es:
1. De primer golpe no cuentas con un entorno de programacion (editor,
compilador, depurador) todo en uno :), aunque esto ultimamente no es tan
cierto.
2. no cuentas con funciones de conio.h, no accedes directamente a las
funciones del bios, como se hace en DOS, ( como programar tu interface del
raton, acceder directamente a un dispositivo como disco duro, tarjeta de
sonido, algun puerto del tarro, cambiar el color de las letras, usar
gotoxy,usar clrscr, entre otras.
En Linux es un poco diferente, lo realizas con llamadas al sistema usando la
funcion iotcl (conocida por algunos con la cuchilla suisa por su operatividad
:) ) o usar los codigos ANSI <buscas en los apendices de los libros de progra
en c > para realizar algunas de las funciones de conio.h, hay unas librerias
que lo implementan llamada uconio.h (buscas en freshmeat.het )
3. Programas multiprocesos :), puedes usar facilidades de comunicacion entre
procesos (como memoria compartida, tuberias, se�ales, sockets hasta los
puedes comunicar entre archivo compartidos)
4. Entre otras ventajas ...
> "Guerra entre procesos", que se generen un n�mero aleatorio de procesos y
> que en determinado momento se empiecen a matar unos a otros, agreg�ndole un
> poco de diversi�n que los procesos tengan una forma de protegerse, para no
> ser eliminados.
:) ok siendo medio responsable por proponer este proyecto al Prof. Carlos
Castro, te dare algunas de las ideas las cuales lo originaron.
1. A traves de tu programa principal generas n procesos, la n es a tu
eleccion (10, 20, 30, ...., n :) ), tienes que guardar en alguna parte
(puedes usar memoria compartida o un archivo binario) una estructura o una
forma de identificar varias cosas: El identificador de cada proceso, los
intentos que se han hecho por matarlo, el identificador del proceso que lo
intenta matar y lo que necesites guardar para hacer lo anterior.
ejemplo:
main()
{
codigo
codigo
for( i=0;i<=n;i++)
{
if (fork() == 0) /*codigo del padre */
{
codigo del padre
}
else /* codigo del hijo
{
"guardo" en "alguna" parte mi id
"capturo" posible "intento" de que alguien me mate, si hay que capturar
algo (como una se�al de "kill"), trato de averiguar que id es, para luego
tratar de matarlo :)
"leo" de "alguna" parte los id de los proceso que previamente se hayan
creado, si no tengo algun id que matar
"Escojo" al azar un id
"intento" "matar" ese id
}
} /* fin del for*/
codigo
codigo
} /* fin del programa principal
NOTAS:
"guardo" puede ser una funcion que acceda a la zona de memoria previamente
creada, actualizando la estructura.
"capturo" es una fucncion que instala y manipula un manejador de se�ales, son
mediante las cuales que se le enviaran se�ales de muerte a los procesos ( mas
o menos asi signal("kill",id) ) , en esta funcion debe de haber un criterio
de muerte, porque sino serian procesos que no los podrias matar, como que si
recive 3 intentos de matar los deceche, contra-atacando al id origen, despues
de eso que accepte la se�al y se muera el proceso destino.
"leo" otra funcion que accede a la zona de memoria, leyendo la estructura.
"escojo" una funcion pseudo aleatoria que le suministras los id de los
procesos almacenados en la estructura y te devuelve uno de ello :)
"intento" la funcion que una vez que sepa cual es la victima, envia una se�al
de muerte a ese proceso
esto a simple modo como lo podrias resolver, no se si habra otras formas
mejores o no tan mejores, pero en resumen esa puede ser la logica de como
entrarle.
>
> Cualquier ayuda ser�a de gran beneficio para m�, ya que en los �ltimos d�as
> he tenido algunos problemas que me han impedido fogearme(conocer y
> aprender) en linux, hasta el colmo de que se me descompus� el monitor de mi
> computadora.
date un leida de: http://www.linuxdoc.org/LDP/lpg/index.html
es la guia de programacion en linux, habla de memoria compartida, se�ales,
entre otros temas.
Que mal lo de tu compu, no creas que fue por instalar linux, que se da�an las
cosas :).
>
> El tiempo que tengo para preparar el proyecto es muy poco, as� que entre
> m�s pronto me ayuden mejor.
Si me di cuenta que les queda como una semana :(,
>
> Muchas Gracias.
De nada
>
> PD. Los felicito por los esfuerzos que realizan para mantener en pie a la
> organizaci�n.
Gracias, si gustas y tienes tiempo nos puedes dar una mano para que todo
salga mas que bien
Espero te sirva para encontrar una solucion al proyecto, si no te queda algo
solo preguntas,
cordialmente,
--
Edgardo Ramos
� "No son los ojos los que ven, sino que nosotros vemos por medio de los
ojos".
� � �Plat�n (c.428-c.347 a. C.); fil�sofo griego.
--
�Desea desuscribirse? Escriba a [EMAIL PROTECTED] con
el tema "unsubscribe".