Autor
|
Tema: ¿Cómo crear procesos hijos en C para Windows? (Leído 6,207 veces)
|
Yoel Alejandro
|
Una pregunta a la comunidad. Como sabemos, el estándar POSIX provee un conjunto de métodos para interacción con el sistema operativo (crear o ejecutar procesos, conocer estados y permisos de ficheros, etc). En implementaciones de C para Linux (e UNIX en general) estas funciones están definidas en <unistd.h>. Y sabemos también que Windows es el campeón en desobedecer los estándares.
Mi pregunta es cómo hacer algo similar, por ejemplo crear un proceso hijo con fork(), a través de un programa elaborado en C para el sistema operativo Windows. Y así por ejemplo crear demonios personalizados para tareas de sistema. O también podría ser crear tuberías, comunicar procesos, etc.
La distribucion MinGW para Windows contempla algunas funciones de este tipo, por ejemplo en <dirent.h> está la función de leer directorios readdir(), y en <unistd.h> tenemos chdir() para cambiarnos de directorio. Pero no vi nada de procesos hijos, tuberías, etc.
|
|
|
En línea
|
Saludos, Yoel. P.D..- Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Todo eso está definido en las Windows API. De hecho cualquier función que veas relevante del sistema estará definida en las windows API. El tema de crear procesos en cuestión, buscando en google "createprocess windows api" encontré la página de referencia: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx¿Esperabas una función tan sencilla como la de fork? Amigo mío, Microsoft es un artista en el arte de complicarse la vida, todo lo que veas desarrollado por él suele estar complicado hasta el exceso. Eso sí, aunque se complica mucho sus herramientas siempre son las mejores en Windows. No vas a encontrar ninguna que haga más que las suyas. Por cierto, si te da igual usar hilos o procesos. Quizás te interesa C++11, es el estándar del 2011 de C++ y una de sus novedades son las librerías de hilos: http://en.cppreference.com/w/cpp/threadDe lo mejor que vas a encontrar en programación concurrente y te funcionará tanto en linux como en windows (ya que forma parte de la librería estándar).
|
|
|
En línea
|
|
|
|
Yoel Alejandro
|
Windows API's: ............ Ya lo sabía: Windows es el campeón en desobedecer los estándares.
O como bien dices: Microsoft es un artista en el arte de complicarse la vida, todo lo que veas desarrollado por él suele estar complicado hasta el exceso.
Mejor digo chau al tema y me decido a seguir programando para Linux y otros que respeten POSIX, jajaja.
|
|
|
En línea
|
Saludos, Yoel. P.D..- Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Yo no me confiaría tanto del POSIX. Para C son estupendas pero el futuro de C++ va a ser las nuevas clases thread del estandar C++11. Digo futuro porque son nuevas y aún tienen que madurar un poco. Pero vamos a mí personalmente me parecen de lo mejor que se ha hecho: void hilo(int a,int b) { cout<<a<<b<<endl; } void otro_hilo(double a,float b,float c) { a += b/c; cout<<a<<endl; } int main() { thread t1(hilo,1,2); // llamo a la funcion hilo con los argumentos 1 y 2 thread t2(otro_hilo,3.2,12.5,6.1); // llamo a la funcion otro_hilo con los argumentos 3.2, 12.5 y 6.1 t1.join(); t2.join(); }
A ver como haces eso en POSIX sin tirar de casts y de hacerte estructuras cada 2x3 ^^ Y en el tema de argumentos por referencia o llamadas de metodos de objetos ya ni hablamos xD.
|
|
« Última modificación: 23 Marzo 2014, 01:32 am por amchacon »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como crear un wpi para windows??
Windows
|
Bender-Deicide
|
4
|
9,917
|
8 Octubre 2011, 21:22 pm
por Bender-Deicide
|
|
|
Aprende cómo identificar procesos maliciosos en Windows
Noticias
|
wolfbcn
|
0
|
2,049
|
16 Febrero 2014, 18:02 pm
por wolfbcn
|
|
|
Cómo crear un USB o DVD de instalación para Windows 8.1
Noticias
|
wolfbcn
|
0
|
1,535
|
10 Noviembre 2014, 18:31 pm
por wolfbcn
|
|
|
Matar dos procesos hijos en C
Programación C/C++
|
Katerina Dobreva
|
0
|
2,352
|
2 Diciembre 2016, 20:16 pm
por Katerina Dobreva
|
|
|
Cómo evitar que tus hijos usen la aplicación de la calculadora falsa para ...
Noticias
|
wolfbcn
|
0
|
1,142
|
7 Octubre 2018, 02:03 am
por wolfbcn
|
|