没有这样的文件或目录c ++ boost库

时间:2018-01-18 13:25:50

标签: c++ serial-port boost-asio

打开串口时遇到问题 这是代码:

void openport(const string & path)
{
     boost::system::error_code error;
     boost::asio::io_service io;
     boost::asio::serial_port port(io);
     port.open(path, error);
     if(ec)
     {
          cout << "failed" << ", e=" << ec.message().c_str() << endl;
     }
}
int main()
{
openport("ttyUSB0");
return 0;
}

运行程序后终端出错: failed, e=No such file or directory

我通过cout在函数openport检查了变量路径是否正确

当我把dmesg | grep ttyUSB我得到了:

[11018.593665] usb 1-1.5: FTDI USB Serial Device converter now attached to ttyUSB0
[15414.150404] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[15423.084984] usb 1-1.5: FTDI USB Serial Device converter now attached to ttyUSB0

任何人都知道如何修复它?

1 个答案:

答案 0 :(得分:2)

在POSIX类型系统(例如Linux)上,所有标准设备都位于/dev/目录中。您需要提供设备的完整路径:

openport("/dev/ttyUSB0");

仅传递"ttyUSB0"时会发生什么情况,系统会在当前目录中查找该设备。