Есть такой код:
if(pid_t pid = fork()) // spawn child process
{
// parent process
LOG("Try to execute smth. in child process");
return;
}
else
{
// child process
doWork();
std::terminate();
}
Тут порождается дочерний процесс в котором выполняется некоторая работа. Где-т...
@Fernando Bueno... Pero igual entiendo que es un problema de hilos... pid_t es el nombre de la variable supongo, faltaría poner un tipo al principio como String y esas cosas.
@ArtEze Es que no entiendo por que cuando no incluyo unistd.h si que me compila el programa pero con la advertencia implicit declaration of function fork
Resulta que tengo la idea de crear un dispositivo sigiloso que tiene la tarea de liberar un gas venenoso. La pregunta seria si Ruby es un lenguaje ideal.
Esto solo por efectos educativo.
@abulafia Gracias por la respuesta, estaba mirando este repositorio que es un fork no directo de MonoDevelop. github.com/Schumix/Schumix2 pero como es antiguo tiene GPL en vez de LGPL, y tiene modificaciones... Supongo que la licencia lo permite. La cosa es que no se actualiza desde el 2015.
Además, y este era un aspecto problemático para algunos de GPL, si usabas código GLP como parte de tu aplicación entonces la aplicación también tenía que ser liberada con licencia GPL
@ArtEze LGPL se diferencia en eso, al no ser tan "exigente" con el tema del software libre. LGPL se aplica a librerías y bibliotecas y permite que las uses como parte de tu proyecto sin obligarte a hacer el proyecto libre
también permite modificación y redistribución y forks y lo que sea, mientras el resultado siga siendo LGPL
no sé si pondrían peros a que "restringieras más" el resultado e hicieras tu fork GPL, supongo que no
A ver, tal como yo lo veo, si un proyecto era GPL, de alguna forma la intención del autor era "obligar" a todo el mundo que lo use a colaborar con el software libre, forzándoles a liberar también su proyecto.
Entiendo que entonces no puedes cambiarle la licencia a LGPL, porque estarías dando permiso a que los "malvados" (del software propietario) pudieran usarlo sin liberar su código, lo que iría en contra de la intención del autor original
Well, recently I found a problem about licensing.
I have an open source project on GitHub, recently I need some codes which using GNU GPL, but my project is using GNU LGPL, so that's the problem.
So how can I use these code? I don't want to change my license. Ask for permission from the original ...
La gracia de LGPL es que una compañía comercial que use un producto LGPL no tiene por qué hacer pública su aplicación, pero si durante el desarrollo descubren un bug en la librería y lo arreglan, sí tienen que hacer público el fix
a mi me suena estupendo :-)
si la librería fuese GPL tendrían que hacer público también el código de su app
@ArtEze Ahora no te he entendido. ¿de qué caso hablas? Si el original era LGPL permitía su uso privativo, y si tú lo usas en un proyecto LGPL estás permitiéndolo también
LGPL te permite enlazar en un producto privado, pero sólo enlazar sin cambiar nada de la librería. Si cambias algo, debes publicar esos cambios bajo LGPL otra vez
Una librería con GPL ni siquiera podrías enlazarla con tu aplicación, a menos que publicaras la aplicación resultante bajo GPL también
Puedes clonarlo, y subirlo a github y hacer todos los cambios que quieras. Lo que no puedes hacer es eliminar de la documentación a los autores originales (o del fichero Authors, o COPYRIGHT o donde aparezcan)
O sea, tienes permiso para modificar MonoDevelop como quieras, pero la obligación de publicar tus modificaciones y permitir a otros que hagan lo mismo con tu trabajo
ese es el espíritu de (L)GPL
no puedes restringir a otros los permisos que a ti te dieron
es un modelo muy interesante para permitir que la gente use software libre, a la vez que se les obliga a publicar los fixes a los hipotéticos bugs. De este modo, el software libre se beneficia de quienes lo usan, aún si son compañías privadas
Pues me imagino que, en el espíritu de libertad de GNU, no van a obligarte a que hables un idioma concreto para colaborar en el desarrollo, de modo que en tu idioma nativo
El software LGPL se usa mucho. Creo que la licencia obliga a quien lo use, incluso si es privado, a mencionar en lugar visible qué librerías LGPL ha usado
El otro día aburrido en mi coche estuve curioseando en el ordenador de a bordo y acabé llegando a una opción "About" y aparecían allí montones de librerías usadas por el software del coche
todas LGPL
claro, si entre ellas hubiera habido una GPL, entonces los fabricantes del coche tendrían que haber publicado también los fuentes de su aplicación
por eso la GPL no está muy bien vista en las compañías de software propietario, e incluso dentro de quienes están a favor del software libre, que ven más posibilidad de expandir este software con licencias menos restrictivas, como LGPL
@ArtEze Sí, en algún diálogo al que el usuario pueda llegar
aunque sea en "letra pequeña" :-)
lo de las licencias es un mundo. Hay muchas más y no conozco las diferencias entre ellas. He visto mucho por ahí la licencia MIT, y la Apache
Estas son más permisivas aún que LGPL
básicamente permiten el uso y la modificación sin obligarte a publicar otra vez tus cambios, por lo que pueden usarse también en software propietario.
La MIT son dos párrafos. Básicamente el primero dice "Haz con esto lo que quieras. Modifícalo, úsalo, véndelo, lo que quieras". El segundo viene a decir "Pero si no funciona o rompes algo o matas a alguien, a mi no me eches la culpa" :-)
Sí, lo conozco. También pasé por el "efecto 2000" que iba a acabar con el mundo :-)
Yo creo que a no mucho tardar los timestamps serán también de 64 bits y se acabó el problema
En realidad, ya tendría que haber habido problemas mucho antes, ya que el protocolo time define esos timestamps como int, y no como unsigned int. Y hace ya años que hemos empezado a usar el bit de signo
Hum, me estaba liando entre el timestamp de unix y de NTP (network time protocol)
el de unix es de 32 bits con signo, y con origen de tiempos en 1970 y se agota en 2038 (a partir de esa fecha se pondría a 1 el bit de signo, retrocediendo por tanto, no a 1970, sino a 1902)
el de NTP es de 32 bits sin signo, pero con origen de tiempos en 1900. Se agota en 2036