【发布时间】:2017-03-29 03:17:05
【问题描述】:
I2CDevice::I2CDevice(unsigned int bus, unsigned int device) {
this->file=-1;
this->bus = bus;
this->device = device;
this->open();
}
int I2CDevice::open(){
string name;
if(this->bus==0) name = BBB_I2C_0;
else name = BBB_I2C_1;
if((this->file=::open(name.c_str(), O_RDWR)) < 0){
perror("I2C: failed to open the bus\n");
return 1;
}
if(ioctl(this->file, I2C_SLAVE, this->device) < 0){
perror("I2C: Failed to connect to the device\n");
return 1;
}
return 0;
}
以上是一段做Linux I2C接口的代码,我的问题就在这行:
this->file=::open(name.c_str(), O_RDWR)
我认为这是尝试使用 open() 函数为文件描述符 this->file 分配一个值。但是为什么会有一个“::”符号呢?为什么不只是“open()”。
【问题讨论】:
-
我已经更新了标题和标签,因为这实际上与
open具体无关,但如果您不同意,您可以撤消我的更改。 -
@immibis 已接受,谢谢!
标签: c++