五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

QY

2023-03-10 21:56 作者:神隱的千尋バ  | 我要投稿

//two
#include <stdio.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <unistd.h>
?#include"P.h"
?#include"P2.h"
#define SEM_READ 0
#define SEM_WRITE 1

union semun
{
?? ?int val;
};
?
void P_operation(int index, int semId);

?
void V_operation(int index, int semId);

?
?

void P2_operation(int index, int semId);

?
void V2_operation(int index, int semId);

?
int main()
{
?? ?key_t key;
?? ?key = ftok("b.c", 123); // 獲取 key 值
?? ?pid_t pid;
?? ?int semId; // 信號燈 ID
?? ?int shmId; // 共享內存 ID
?? ?int semId2; // 信號燈 ID2

?
?? ?char *shamaddr;
?
??? ?semId2 = semget(key, 2, IPC_CREAT | 0755); // 創(chuàng)建信號量
?? ?if (semId < 0)
?? ?{
?? ??? ?perror("semget error");
?? ??? ?return -1;
?? ?}
?? ?semId = semget(key, 2, IPC_CREAT | 0755); // 創(chuàng)建信號量
?? ?if (semId < 0)
?? ?{
?? ??? ?perror("semget error");
?? ??? ?return -1;
?? ?}
?? ?shmId = shmget(key, 128, IPC_CREAT | 0755); // 創(chuàng)建共享內存
?? ?if (shmId < 0)
?? ?{
?? ??? ?perror("shmget error");
?? ??? ?return -1;
?? ?}
?
?? ?// Init semaphore
?? ?union semun myun;
?? ?// Init semaphore read
?? ?myun.val = 0;
?? ?semctl(semId, SEM_READ, SETVAL, myun); // 對 SEM_READ 信號量設置初始值
?? ?// Init semaphore write
?? ?myun.val = 1;
?? ?semctl(semId, SEM_WRITE, SETVAL, myun); // 對 SEM_WRITE 信號量設置初始值
?
?? ?pid = fork();
?
?? ?// child process
?? ?if (pid == 0)
?? ?{
?? ??? ?while (1)
?? ??? ?{
?? ??? ??? ?shamaddr = (char *)shmat(shmId, NULL, 0);
?? ??? ??? ?//printf("Na Hua Yan Dan Ji Xu Kan Bing %s\n", shamaddr); // 操作對共享資源?? ?
?? ??? ??? ?//printf("Hua Yan Wan\n");
?? ??? ??? ?//printf("Qing Xian Hua Yan\n");
?? ??? ??? ?//?? ?printf("Kan Wan Le Xia Yi Wei\n");
?? ??? ??? ?//V2_operation(SEM_WRITE, semId2);?? ??? ?// 共享內存映射
?? ??? ??? ?P_operation(SEM_READ, semId);?? ??? ??? ??? ??? ?// P 操作
?? ??? ??? ?//printf("XIAN HUA YAN: %s\n", shamaddr); // 操作對共享資源
?? ??? ??? ?printf("Hua Yan Wan\n");
?? ??? ?V2_operation(SEM_WRITE, semId2);
?? ??? ?printf("Na Hua Yan Dan Ji Xu Kan Bing\n"); ?? ?
?? ??? ??? ??? ??? ??? ?// V 操作
?? ??? ??? ??? ??? ??? ?printf("Kan Wan Le Xia Yi Wei %s\n", shamaddr);
?? ??? ??? ??? ??? ?
?? ??? ?}
?? ?}
?
?? ?// parent process
?? ?else if (pid > 0)
?? ?{
?? ??? ?while (1)
?? ??? ?{
?? ??? ??? ?shamaddr = (char *)shmat(shmId, NULL, 0);
?? ??? ??? ?
?? ??? ??? ?V_operation(SEM_READ, semId);
?? ??? ??? ?fgets(shamaddr, 32, stdin);
?? ??? ??? ?printf("Qing Xian Hua Yan\n");
?? ??? ??? ?//P_operation(SEM_WRITE, semId);
?? ??? ??? ?//printf("HUA YAN le,kan YI SHENG\n");
?? ??? ??? ?//fgets(shamaddr, 32, stdin);
?? ??? ??? ?
?? ??? ??? ??? ?P2_operation(SEM_WRITE, semId2);
?? ??? ??? ??? ??? ?
?? ??? ?}
?? ?}
?
?? ?return 0;
}






//ww
#include <stdio.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <unistd.h>
void P_operation(int index, int semId)
{
?? ?struct sembuf sop;
?? ?sop.sem_num = index; //信號燈編號
?? ?sop.sem_op = -1;?? ? // P 操作
?? ?sop.sem_flg = 0;?? ? // 阻塞
?? ?semop(semId, &sop, 1);
}
?
void V_operation(int index, int semId)
{
?? ?struct sembuf sop;
?? ?sop.sem_num = index; //信號燈編號
?? ?sop.sem_op = 1;?? ??? ? // V 操作
?? ?sop.sem_flg = 0;?? ? // 阻塞
?? ?semop(semId, &sop, 1);
}
?




//WW:
#include <stdio.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <unistd.h>
void P2_operation(int index, int semId)
{
?? ?struct sembuf sop2;
?? ?sop2.sem_num = index; //信號燈編號
?? ?sop2.sem_op = -1;?? ? // P 操作
?? ?sop2.sem_flg = 0;?? ? // 阻塞
?? ?semop(semId, &sop2, 1);
}
?
void V2_operation(int index, int semId)
{
?? ?struct sembuf sop2;
?? ?sop2.sem_num = index; //信號燈編號
?? ?sop2.sem_op = 1;?? ??? ? // V 操作
?? ?sop2.sem_flg = 0;?? ? // 阻塞
?? ?semop(semId, &sop2, 1);
}

QY的評論 (共 條)

分享到微博請遵守國家法律
宜春市| 嘉黎县| 克山县| 杭州市| 刚察县| 南开区| 昌宁县| 陈巴尔虎旗| 山阳县| 松江区| 深水埗区| 泰宁县| 新竹市| 乌审旗| 灵川县| 道孚县| 区。| 蒙自县| 大荔县| 资中县| 鄄城县| 宁波市| 西贡区| 达州市| 塔河县| 巴林左旗| 福海县| 丰镇市| 丰原市| 武山县| 乐陵市| 门源| 平舆县| 手游| 海原县| 延川县| 察雅县| 玛多县| 台北县| 左贡县| 淅川县|