window系统下C语言找不到fork()函数

window系统下C语言找不到fork()函数

window系统下C语言找不到fork()函数

有次模拟进程时,想在window系统下调用fork()函数,但是就是引入相关头文件都无法找到函数,一开始是怀疑是否引入的头文件有误或者缺失,发现并没有缺失或者错误,然后就怀疑上了是操作系统不同引起的。后来查找博文,才发现window下没有fork函数。

window下没有一个函数可以实现UNIX下的fork()函数,其原因是历史造成的.对于UNIX来说它一出生就是多用户的系统,所以它的所有进程都共有一个最原始的父进程init.而windows生下来时是个单用户系统(DOS),不存在这样的概念.所以fork这个函数是UNIX下特有的.

如果硬要模似,CreateProcess()不如用CreateThread()更接近实际情况,把主thread中的所有公共变量都塞入一个结构/类的,带入新的thread中,这样可以大致完成"复制自身"的要求.

但由于是thread,所以主thread死后,子thread不能独立存在,而fork()出来的子进程可以脱离主进程独立存在,这一点在window下只有CreateProcess()才略有相似之处.

总之,实现类似fork()的功能在window下是复杂,必须个案处理,无法"一言以蔽之曰".

原文链接:https://blog.csdn.net/hfuuhgcc/article/details/84086205

相关推荐

返回帮助中心首页>>退款方式及时间
在哪个应用商店能下载365

返回帮助中心首页>>退款方式及时间

📅 10-30 👁️ 6151
Audacity 里输出音频设备的设置问题
在哪个应用商店能下载365

Audacity 里输出音频设备的设置问题

📅 09-30 👁️ 4247
发红包吉利数字(发红包吉利数字一览表100到200)
365bet中文官网

发红包吉利数字(发红包吉利数字一览表100到200)

📅 11-02 👁️ 1998