显然这不是我们想要的,所以本节引入互斥的概念:实现同一时刻,只能一个应用程序使用驱动程序
互斥其实现很简单,就是采用一些标志,当文件被一个进程打开后,就会设置该标志,使其他进程无法打开设备文件。...2.1修改驱动程序
定义原子变量:
/*定义原子变量canopen并初始化为1 */
atomic_t canopen = ATOMIC_INIT(1);
在.open成员函数里添加:
/*自减操作后测试其是否为...-1;}
else
{
printf("can open,PID=%d\n",getpid()); //打开成功,打印pid进程号
}
while...return -1;}
else
{
printf("can open,PID=%d\n",getpid()); //打开成功,打印pid进程号...);
return -1;}
else
{
printf("can open,PID=%d\n",getpid()); //打开成功,打印pid进程号