如下代码,fork返回-1,该怎么样才能正常调用cygwin.dll实现fork ?
#include "stdafx.h"
#include "MSCorEE.h"
#include "Winbase.h"//(include Windows.h)
#pragma comment(lib, "Kernel32.lib")// Kernel32.lib
int main()
{
HMODULE h = LoadLibrary("cygwin1.dll");
if (h) {
//printf("123");
void(*_cygwin_dll_init)() = (void(*)())GetProcAddress(h, "cygwin_dll_init");
_cygwin_dll_init();
int (*fork)() = (int(*)())GetProcAddress(h, "fork");
int pid = fork();
if (pid == -1) {
printf("fork failure %d", pid);
}
else if (pid == 0) {
return 11;
}
else {
printf("processid = %d", pid);
}
FreeLibrary(h);
}
system("pause");
return 0;
}
直接在cygwin环境下用gcc编译,运行时带上cygwin1.dll即可。