我想将工作分成两个子进程。一个孩子找到最小值,另一个最大值。这是示例代码:
现在返回值为 min:0 max:0,你能看看这个吗?
进程不共享内存。由函数修改的最小/最大值全局变量是进程本地的。它们都不会触及父最小值/最大值变量。您需要以某种方式传达结果,例如使用管道/套接字。
我认为你还有一个问题,你实际上是在产生三个进程。使用第一个 fork() 分叉的第一个进程将执行第二个 fork(),因为它不受 if 保护。
您不是拆分为线程,而是拆分为新进程,每个进程都有自己的变量版本(因为两个新进程都有自己的独立内存)。您要么需要某种 IPC,要么需要实际使用线程。
您没有像其他人描述的那样使用线程。
但是,当您都可以在一个循环中查找最小值/最大值时,您为什么要这样做呢?