Я пишу программу, которая должна создавать несколько процессов. Скажем, это число равно 3. Я хочу, чтобы каждый из этих процессов подсчитывал и выводил от 1 до 5 и спал в течение 1 секунды между каждым счетчиком/выходом. Я попытался сделать это следующим образом, но мой сон (1) не работал, как будто его прерывали. Я был бы признателен за некоторый опыт в этой теме, что я сделал не так, и как решить эту проблему. Вот мой код до сих пор.Создание нескольких процессов в C
/*
* Creates N > 2 processes.
*/
int main(int argc, const char * argv[])
{
pid_t pid;
for(int i = 0; i < N_PROC; i++) {
pid = fork();
if(pid == 0) {
ProcessWork();
exit(0);
}
}
}
/*
* Work of a single process.
*/
void ProcessWork() {
char buffer[BUF_SIZE];
for (int i = 1; i <= 5; i++) {
sleep(1);
sprintf(buffer, "PID = %d, count = %d\n", getpid(), i);
write(1, buffer, strlen(buffer));
}
}
Что означает «сон (1) не работает» означает? – immibis
Ваш пример отлично работает здесь. Какова ваша проблема? –
Multi-threaded - лучший вариант –