佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 536|回复: 1

有谁精于operating system 或 linux 的可以帮帮忙?

[复制链接]
发表于 15-12-2012 05:41 PM | 显示全部楼层 |阅读模式
有谁精于operating system 或 linux 的可以帮帮忙?

我尝试把code 打进 linux (fedora) 里 ,可是总是告诉我有问题
可是它常说 sembuf no hv member "sem"
究竟是出了什么问题?
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 15-12-2012 05:49 PM | 显示全部楼层
producer.c

#include<stdio.h>
#include<sys/types.h>
#include<sys/sem.h>
#include<unistd.h>
#include<sys/ipc.h>
#include<fcntl.h>
#define KEY 1010
union semun {
               int              val;
               struct semid_ds *buf;
               unsigned short  *array;
               struct seminfo  *__buf;
           };
void main()
{
int semid,count=0,fd;
struct sembuf put,get;
union semun u;
unsigned a[2]={1,0};
semid=semget(KEY,2,IPC_CREAT|IPC_EXCL|0666);
u.array=a;
semctl(semid,0,SETALL,u);
fd=open("buff",O_CREAT|O_RDWR,0666);
write(fd,&count,sizeof(int));
while(1)
{
put.sem_num=0;
put.sem_op=-1;
put.sem_flg=0;
semop(semid,&put,1);
lseek(fd,0,0);
read(fd,&count,sizeof(int));
count++;
lseek(fd,0,0);
write(fd,&count,sizeof(int));
printf("Produced item: %d\n",count);
get.sem_num=1;
get.sem_op=1;
get.sem_flg=0;
semop(semid,&get,1);
sleep(5);
}
close(fd);
}




consumer.c

#include<stdio.h>
#include<sys/types.h>
#include<sys/sem.h>
#include<unistd.h>
#include<sys/ipc.h>
#include<fcntl.h>
#define KEY 1010
union semun {
               int              val;
               struct semid_ds *buf;
               unsigned short  *array;
               struct seminfo  *__buf;
           };

void main()
{
int semid,count,fd;
struct sembuf put,get;
semid=semget(KEY,0,0);
fd=open("buff",O_RDONLY);
while(1)
{
get.sem_num=1;
get.sem_op=-1;
get.sem_flg=0;
semop(semid,&put,1);
lseek(fd,0,0);
read(fd,&count,sizeof(int));
printf("Consumed item: %d\n",count);
put.sem_num=0;
put.sem_op=1;
put.sem_flg=0;
semop(semid,&put,1);
sleep(5);
}
close(fd);
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-4-2024 06:38 PM , Processed in 0.058676 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表