SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Qarl en Lunes 20 de Junio de 2011, 15:42

Título: ¿Por qué no me compila utilizando "fork()"?
Publicado por: Qarl en Lunes 20 de Junio de 2011, 15:42
Muy buenas!
Estoy haciendo un programilla y necesito crear un proceso (hijo) a partir de mi programa (padre). Estuve buscando y encontré la función "fork()", la cual hace exactamente lo que busco. El problema es que no consigo compilar, siempre me salta error como si no estuviese definida.
Este es el error:
137 C:UsersQarlwxDev-C++main.cpp `fork' was not declared in this scope
Y en esa línea hay esto:
fork();
Me parece raro porque tengo incluida la cabecera necesaria para usar esa función, #include <unistd.h>.
Estoy usando wxDev-C++, aunque he probado con CodeLite y me da el mismo error.

Salu2 ;)
Título: Re: ¿Por qué no me compila utilizando "fork()"?
Publicado por: roleiland en Lunes 20 de Junio de 2011, 16:04
No estoy seguro, pero fork() es una llamada POSIX de sistemas UNIX, y según parece estas en Windows. Lo que no sé es si para Windows tambien existe eso, pero creo que no.
Título: Re: ¿Por qué no me compila utilizando "fork()"?
Publicado por: Qarl en Lunes 20 de Junio de 2011, 20:00
Efectivamente, creo quebe el problema está ahí, pero... tiene que haber alguna función similar en windows. haber si alguien me puede echar un cable.
Gracias igualmente.

salu2! ;)
Título: Re: ¿Por qué no me compila utilizando "fork()"?
Publicado por: su - en Martes 21 de Junio de 2011, 22:04
Desafortunadamente en Windows no existe una funcion nativa similar a fork. Tienes dos opciones: instalas Cygwin (http://es.wikipedia.org/wiki/Cygwin) (que usa un hack sucio para lograrlo) o usas  threads que es la solucion estandar en Windows.

http://www.codeproject.com/KB/threads/M ... orial.aspx (http://www.codeproject.com/KB/threads/MultithreadingTutorial.aspx" onclick="window.open(this.href);return false;)