1

我尝试system()在 Mac 上创建一些线程来按功能 ping 不同的服务器。代码如下所示:

sprintf(str,"#!/bin/sh\n ping -c 3 -t 3 -o %d.%d.%d.%d \n",dataIP1[0],dataIP1[1],dataIP1[2],dataIP1[3]);
int ret =system(str);  

但是我发现如果有一个服务器不可用,最后一个线程必须花费超过 3s 才能 ping 这个服务器,即使这个服务器可用。所以我猜这个system()函数不支持多线程。看起来它内部有一个储物柜,所以即使你在不同的线程中同时调用它,它也只能一个一个地完成工作。

这是对的吗?

4

0 回答 0