史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-11-01, 02:33 PM   #1
saltv2 帥哥
註冊會員
榮譽勳章
UID - 20474
在線等級: 級別:15 | 在線時長:318小時 | 升級還需:2小時級別:15 | 在線時長:318小時 | 升級還需:2小時級別:15 | 在線時長:318小時 | 升級還需:2小時級別:15 | 在線時長:318小時 | 升級還需:2小時級別:15 | 在線時長:318小時 | 升級還需:2小時
註冊日期: 2003-01-01
VIP期限: 2007-10
住址: 浩瀚宇宙
文章: 135
精華: 0
現金: 1120 金幣
資產: 5120 金幣
預設 疑問 - 請問一題c的fork在unix上執行

請教一下,我們的os要寫一題程式,但我們不常在用c的行程,所以一頭務水,我們大致上是寫說,要由二個行程,一個會做生產者執行Producer而另一個行程執行Customer的函數,但是我執行不出來,函數那些都沒問題,就差在main裡的行程我不會叫,
總而言之就是有一個行程執行Producer()
另一個執行Customer..
希望各位先進能幫我解決這一個問題
謝謝


#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
int Queue[11];
int Counter;
void Clear_Queue(){
int i;
for( i = 0;i<11;i++){
Queue[i]=0;
}
}
int random_at_range ( int lower, int upper)
{
return rand ( ) % (upper-lower+1) + lower;
}
void Producer(){
int i;
Counter=random_at_range(1,10);
Clear_Queue();
for(i=0;i<=Counter;i++){
Queue[i] = random_at_range(1,100);
}

}
void Customer(){
int i;
if(Counter==0){
printf("Queue is null\n");
return;
}
for(i=0;i<=Counter;i++){
printf("Queue[%d]=%d\n",i,Queue[i]);
}
}
int main()
{
srand ( (unsigned) time ( NULL ) );
int pid;
pid = fork();
if(pid == 0){
while(1){
Producer();
printf("excute Producer\n");
sleep(1);
}
exit(1);
}
else if(pid >0){
while(1){
Customer();
printf("excute customer\n");
sleep(1);
}
}
}
saltv2 目前離線  
送花文章: 5, 收花文章: 4 篇, 收花: 6 次
回覆時引用此帖
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 01:37 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1