利用工作之餘為小夥伴寫了份作業,關於程序間通訊的。題目如下:
父程序從鍵盤上接受1000個資料,對其求和sum1,子程序對這1000個數平方和sum2,結果傳給父程序,父程序將sum1+sum2後,列印結果。
要求:用大小為10的共享區傳遞1000個資料;子程序用訊息機制將sum2傳給父程序。
主要利用共享記憶體實現程序間通訊,使用管道實現程序間競爭關係,freebsd下測試通過。**如下:時間有限,有可能有些不足,希望高手給予指點。
1 #include 2 #include3 #include 4 #include 5 #include 6
7const
int key = 0x12345678;8
static
int pfd1[2], pfd2[2];9
10#define shm_len (10*1024)
11#define val_num 5
1213
intinit_shm()
2122
return
shmid;23}
2425
void cancel_shm(int
shmid)
30 printf("
cancel_shm successfully!\n");
31}3233
void *shm_get(int
shmid)
4142
return
mem;43}
4445
int get_val(int *val, int
num) 51}
52void show_val (int *val, int
num)
57 printf("\n"
);58}59
60int add_val (int *val, int
num)
6768
return
result;69}
7071
int square_val (int *val, int
num)
7980
return
result;81}
8283
void tell_wait (void
) 88}89
90void
tell_parent (pid_t pid) 95}
9697
void wait_parent (void
) 104
}105
106void
tell_child (pid_t pid)
111}
112113
void wait_child (void
) 120
}121
122int main(int argc, char *argv) else
if (pid == 0) else
165166
cancel_shm(shmid);
167168
return0;
169 }
乙個java小程式
能讓阿拉伯數字讀成符合漢語語法和漢語習慣的中文.就這我 還做了一天呢 鬱悶.public class itcs string unit1 new string string unit2 new string string str args 0 string str 2 null system.out...
乙個socket小程式
一直對c c 下的socket程式設計必是很熟悉,今天終於完成了乙個很簡單的server client程式 伺服器 include include pragma ment lib,ws2 32.lib using namespace std const int my error 1 int main...
乙個日曆小程式
include define sunday 0 define monday 1 define tuesday 2 define wednesday 3 define thursday 4 define friday 5 define saturday 6 void giveinstructions ...