Функция system () на Mac не поддерживает многопоточность? - PullRequest
1 голос
/ 05 декабря 2011

Я пытаюсь создать несколько потоков для проверки связи с другими серверами с помощью функции system() на Mac. Код выглядит так:

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);  

Но я обнаружил, что если сервер недоступен, последние потоки должны стоить более 3 секунд для проверки связи с этими серверами, а также даже если этот сервер доступен. Поэтому я предполагаю, что функция system() не поддерживает многопоточность. Похоже, что внутри него есть шкафчик, поэтому он может выполнять работу только один за другим, даже если вы одновременно вызываете его в другом потоке.

Это правильно?

...