我在10分鐘取得這一點,並花了2小時,試圖弄清楚爲什麼它不會做終端上的任何東西,終於放棄了和需要幫助。如果有人能提供幫助,我將非常感激。謝謝。睡眠理髮算法 - 代碼不執行
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
int main (int argc, char const *argv[])
{
int waitingRoomCust = 0;
srand(time(NULL));
int barber = fork();
printf("%d\n",barber);
if (barber==0) {
while(1) {
if(waitingRoomCust > 0) {
waitingRoomCust--;
sleep((rand() % 12));
printf("Customer has been given a haircut.");
}
}
}
if(barber!=0) {
while(1) {
if(waitingRoomCust <= 3) {
waitingRoomCust++;
printf("The waiting room has now %i customers.", waitingRoomCust);
}
else {
printf("Waiting room is full, customer has left.");
}
}
}
return 0;
}
學習使用調試器的時間。 – simonzack 2014-10-04 04:32:11
根本沒有輸出? – 2014-10-04 04:39:03
你如何在父進程和子進程之間進行通信?使用'fork()'創建進程不是線程。變量和內存不在進程之間共享。來自man fork()的 – SSC 2014-10-04 04:39:14