[EMAIL PROTECTED] dijo:
> Quoting Horst von Brand <[EMAIL PROTECTED]>:
> > C es el ejemplo clasico de lenguaje procedural, C++ es una extension OO
> > (bastante mal lograda) a C.
> Yo tengo entendido que una forma muy eficiente de escribir codigo C
> "puro" basado en objetos (distinto a OO, ya que no hay herencia),
Todo puede arreglarse...
> es
> utilizando estructuras con campos que son punteros a funciones que tienen
> como primer parametro generalmente una variable de la susodicha
> estructura,
Un puntero a la estructura, mas bien.
> el famoso "objeto" this, con lo cual se tienen en las
> estructuras los datos y los métodos que manipulan esos datos :-) creo que
> gran parte del kernel de linux esta escrito así... o me equivoco, doc?
Yep. Tiene algunas otras gracias:
- Puedes cambiar (!) la funcion invocada sobre la marcha
- Se puede arreglar facilmente el llamar "otras" funciones alrededor del
metodo (p.ej. alguna funcion padre, etc)
- Se pueden manejar "metodos por omision": Si no hay metodo, llame a...
Tiene sus problemas. Pero funciona. En todo caso, al interior del nucleo
las mas de las veces son objetos instanciados con operaciones diferentes. O
sea, tienes algo como (de include/linux/fs.h):
struct file_operations {
struct module *owner;
loff_t (*llseek) (struct file *, loff_t, int);
ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
ssize_t (*aio_read) (struct kiocb *, char __user *, size_t, loff_t);
ssize_t (*write) (struct file *, const char __user *, size_t,
loff_t *);
ssize_t (*aio_write) (struct kiocb *, const char __user *, size_t,
loff_t);
/* etc */
};
Y cada tipo de archivo tiene asociada una estructura de estas (llenada con
las funciones correctas del caso). Cada vez que se quiere hacer un write
llamas a la funcion write parte de esta estructura que corresponde a ese
archivo. Un archivo (struct file) es a su vez una estructura que contiene
un puntero a la struct file_operations propia a ese tipo de archivo.
Enredado y todo, uno se acostumbra; y es la manera en que tipicamente C++
internamente implementa funciones virtuales.
--
Dr. Horst H. von Brand User #22616 counter.li.org
Departamento de Informatica Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria +56 32 654239
Casilla 110-V, Valparaiso, Chile Fax: +56 32 797513
From [EMAIL PROTECTED] Tue Mar 9 18:43:56 2004
From: [EMAIL PROTECTED] (Victor Hugo dos Santos)
Date: Tue Mar 9 18:44:11 2004
Subject: Varias perguntas sobre CVS
Message-ID: <[EMAIL PROTECTED]>
Hola a todos,
Estoy configurando CVS por acá y alguna dudas me viene a la cabeza.
- Se puede utilizar autenticación pserver y rsh (decidir utilizar rsh) mas no
me agrada la idea de que los usuarios tengan un shell valido (/bin/bash) en el
sistema, probé con "false" y "nologin" y no funciona!!!! :-(
Existe alguna alternativa para esto ????
- Como se define quien tienes derecho de escribir en el directorio y quien no
tiene permiso para escribir???
Esto funciona en base al sistema de archivo UNIX???
O sea, se estoy en el grupo "cvs" (o otro que tenga acceso de escritura) a los
archivos, entonces, tengo los permisos necesarios ???
Y en el caso del usuario anónimo, simplemente vas a tener permiso de lectura,
ya que los archivos tienen permiso 644 ??? O existe algún otro método para
crear el usuario anónimo ???
- Como se establece quien es administrador y quien no es ????
Tengo entendido que algunas tareas (creación de tag y ramas, por ejemplo)
solamente la pueden realizar el admin ???
- Donde quedan guardadas las versiones ???
Por ejemplo, se estoy trabajando con la versión 2.2 de un archivo y me tenga
que volver a trabajar con la versión 1.4.2, como podría recuperar esta versión
???
utilice las opciones para crear tag y ramas y mirando los archivos en el
servidor(*,v) , se mira que se realizaron las ramas... Mas no encuentro donde
están las informaciones viejas, o sea, pensaba que iba creando en el directorio
archivos como:
archivo.c_1.1.1.1
archivo.c_1.2
archivo.c_2.0
o por ultimo algún local donde quedara guardado las modificaciones viejas, mas
no encontré estas en ninguna parte .
Estaba leyendo varios manuales en la red, que no me acallaron las dudas de mas
arriba..
Ahora estoy en la pagina oficial de CVS, se alguien tiene algún sitio que tenga
información extra interesante sobre el tema, quedaría agradecido que me lo
enviara. Obs.: Ya visite el sitio de fcatrin :D
Gracias
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Victor Hugo dos Santos
Linux Counter #224399
La Serena - IV Región - Chile