私はそれを認識し、cpp オブジェクト内では機能open()
しioctl()
ません。関数内で呼び出された場合は操作を実行できmain()
ますが、クラス内では実行できません。ファイル システム呼び出しを行う別のオブジェクトを持つメイン ループで実行されているオブジェクトがあります。
したがって、基本的にメインループで開くことができます(ポインターの3を取得し、ioctl
成功します)。しかし、オブジェクトでそれを行うと、open に対して 0 が返され (これはおそらくエラーではありません)、ioctl は失敗します。
ios::
で動作しないため、 iostream オプションを使用できないことはわかっていますioctl
。cpp オブジェクト内で通常の ioctl を機能させるにはどうすればよいですか?
int add=0x4b;
int i2c_bus;
if(( i2c_bus = open( "/dev/i2c-0", O_RDWR )) < 0 )
{
printf("Unable to open file /dev/i2c-0.\n");
}
if( ioctl( i2c_bus, I2C_SLAVE, add ) < 0 )
{
printf("Open chip %d FAILED file %d\n",add, i2c_bus);
return -1;
}
else
{
printf("Open chip %d Succeeded file %d\n\n",add, i2c_bus);
return 1;
}