项目描述
该项目用来封装linux信号量的操作,方便我们操作信号量。
使用信号量可以实现如下目的:
1、共享资源的互斥操作
2、进程间的同步操作
项目架构
该项目最终生成动态库libsem_common.so
使用说明:
包含头文件sem_common.h
编译动态库libsem_common.so
项目截图
(1)利用信号量实现共享资源互斥操作(一个进程在操作共享资源时,另一个进程是不允许对共享资源同时进行操作的)
account.h(银行账户的头文件,主要是对账户的一些操作的申明):
#ifndef __ACCOUNT_H__
#define __ACCOUNT_H__
typedef struct
{
int code;
double balance;
int semid; //在共享资源上绑定一个信号量集
}Account;
//取款
extern double withdraw(Account *a, double amt);
//存款
extern double deposit(Account *a, double amt);
//查看账户余额
extern double get_balance(Account *a);
#endif
account.c(银行账户的C文件,账户操作的实现):
#include <stdio.h>
#include <string.h>
#include "account.h"
#include <assert.h>
#include "pv.h"
//取款
double