IIC多应用逻辑冲突

在Linux 写IIC应用,当一条总线上有两个不同设备时,并且上层有两个对应的.c应用去同时去操作这两个设备。
当我打开第二个应用,那么/dev/i2c-0这个设备(文件)就会被打开第二次, 这样不会出错吗?如果会出错,Linux为什么设计成这样?那其他的总线外设设备怎么做的?