¿Cómo llamar a la función fork en LINUX (UNIX) usando el lenguaje C (C) en el sistema Windows?
No hay ninguna función en la ventana que pueda implementar la función fork() en UNIX. Esto se debe al historial. Para UNIX, nació como un sistema multiusuario, por lo que todos sus procesos tienen un proceso padre original, init. Aunque Windows nació como un sistema de usuario único (DOS), no existe tal concepto. Por lo tanto, la función fork es única en UNIX.
Si insistes en la similitud, CreateProcess() está más cerca de la situación real que CreateThread(). Todas las variables públicas en el hilo principal se introducen en una estructura/clase y se incorporan al nuevo hilo. Básicamente se completa el requisito "Cópiese usted mismo".
Pero debido a que es un hilo, después de que el hilo principal muere, el hilo secundario no puede existir de forma independiente, y el proceso secundario de fork() puede existir independientemente del proceso principal, que es ligeramente similar a CreateProcess( ) debajo de la ventana.
En resumen, implementar funciones como fork() debajo de la ventana es relativamente complicado y debe tratarse caso por caso y no se puede resumir en una palabra.